JBoss Identity SVN: r942 - identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers.
by jboss-identity-commits@lists.jboss.org
Author: anil.saldhana(a)jboss.com
Date: 2009-11-13 11:48:50 -0500 (Fri, 13 Nov 2009)
New Revision: 942
Modified:
identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers/SAML2SignatureHandlerUnitTestCase.java
Log:
use the new handler
Modified: identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers/SAML2SignatureHandlerUnitTestCase.java
===================================================================
--- identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers/SAML2SignatureHandlerUnitTestCase.java 2009-11-13 16:41:37 UTC (rev 941)
+++ identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers/SAML2SignatureHandlerUnitTestCase.java 2009-11-13 16:48:50 UTC (rev 942)
@@ -48,6 +48,7 @@
import org.jboss.identity.federation.web.core.HTTPContext;
import org.jboss.identity.federation.web.handlers.saml2.SAML2AuthenticationHandler;
import org.jboss.identity.federation.web.handlers.saml2.SAML2SignatureGenerationHandler;
+import org.jboss.identity.federation.web.handlers.saml2.SAML2SignatureValidationHandler;
import org.jboss.test.identity.federation.web.mock.MockHttpServletRequest;
import org.jboss.test.identity.federation.web.mock.MockHttpServletResponse;
import org.jboss.test.identity.federation.web.mock.MockHttpSession;
@@ -120,6 +121,10 @@
request.addOption(GeneralConstants.SENDER_PUBLIC_KEY, keypair.getPublic());
- handler.handleStatusResponseType(request, response);
+ SAML2SignatureValidationHandler validHandler = new SAML2SignatureValidationHandler();
+ validHandler.initChainConfig(chainConfig);
+ validHandler.initHandlerConfig(handlerConfig);
+
+ validHandler.handleStatusResponseType(request, response);
}
}
\ No newline at end of file
16 years, 6 months
JBoss Identity SVN: r941 - in identity-federation/trunk/jboss-identity-web/src: test/java/org/jboss/test/identity/federation/web/saml/handlers and 1 other directory.
by jboss-identity-commits@lists.jboss.org
Author: anil.saldhana(a)jboss.com
Date: 2009-11-13 11:41:37 -0500 (Fri, 13 Nov 2009)
New Revision: 941
Added:
identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureGenerationHandler.java
Removed:
identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureHandler.java
Modified:
identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers/SAML2SignatureHandlerUnitTestCase.java
Log:
bring in saml sig gen handler
Added: identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureGenerationHandler.java
===================================================================
--- identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureGenerationHandler.java (rev 0)
+++ identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureGenerationHandler.java 2009-11-13 16:41:37 UTC (rev 941)
@@ -0,0 +1,85 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.identity.federation.web.handlers.saml2;
+
+import java.security.KeyPair;
+
+import org.apache.log4j.Logger;
+import org.jboss.identity.federation.api.saml.v2.sig.SAML2Signature;
+import org.jboss.identity.federation.core.exceptions.ProcessingException;
+import org.jboss.identity.federation.core.saml.v2.interfaces.SAML2HandlerRequest;
+import org.jboss.identity.federation.core.saml.v2.interfaces.SAML2HandlerResponse;
+import org.jboss.identity.federation.web.constants.GeneralConstants;
+import org.w3c.dom.Document;
+
+/**
+ * Handles SAML2 Signature
+ * @author Anil.Saldhana(a)redhat.com
+ * @since Oct 12, 2009
+ */
+public class SAML2SignatureGenerationHandler extends BaseSAML2Handler
+{
+ private static Logger log = Logger.getLogger(SAML2SignatureGenerationHandler.class);
+ private boolean trace = log.isTraceEnabled();
+
+ @Override
+ public void generateSAMLRequest(SAML2HandlerRequest request, SAML2HandlerResponse response)
+ throws ProcessingException
+ {
+ //Generate the signature
+ Document samlDocument = response.getResultingDocument();
+
+ if(samlDocument == null && trace)
+ {
+ log.trace("No document generated in the handler chain. Cannot generate signature");
+ return;
+ }
+
+ //Get the Key Pair
+ KeyPair keypair = (KeyPair) this.handlerChainConfig.getParameter(GeneralConstants.KEYPAIR);
+
+ if(keypair == null)
+ {
+ log.error("Key Pair cannot be found");
+ throw new ProcessingException("KeyPair not found");
+ }
+
+ SAML2Signature samlSignature = new SAML2Signature();
+ //Get the ID from the root
+ String id = samlDocument.getDocumentElement().getAttribute("ID");
+
+ try
+ {
+ samlSignature.sign(samlDocument, id, keypair);
+ }
+ catch (Exception e)
+ {
+ log.error("Unable to sign:",e);
+ throw new ProcessingException("Unable to sign");
+ }
+ }
+
+ public void handleRequestType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException
+ {
+ //Nothing to do
+ }
+}
\ No newline at end of file
Deleted: identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureHandler.java
===================================================================
--- identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureHandler.java 2009-11-13 16:33:59 UTC (rev 940)
+++ identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureHandler.java 2009-11-13 16:41:37 UTC (rev 941)
@@ -1,85 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.identity.federation.web.handlers.saml2;
-
-import java.security.KeyPair;
-
-import org.apache.log4j.Logger;
-import org.jboss.identity.federation.api.saml.v2.sig.SAML2Signature;
-import org.jboss.identity.federation.core.exceptions.ProcessingException;
-import org.jboss.identity.federation.core.saml.v2.interfaces.SAML2HandlerRequest;
-import org.jboss.identity.federation.core.saml.v2.interfaces.SAML2HandlerResponse;
-import org.jboss.identity.federation.web.constants.GeneralConstants;
-import org.w3c.dom.Document;
-
-/**
- * Handles SAML2 Signature
- * @author Anil.Saldhana(a)redhat.com
- * @since Oct 12, 2009
- */
-public class SAML2SignatureHandler extends BaseSAML2Handler
-{
- private static Logger log = Logger.getLogger(SAML2SignatureHandler.class);
- private boolean trace = log.isTraceEnabled();
-
- @Override
- public void generateSAMLRequest(SAML2HandlerRequest request, SAML2HandlerResponse response)
- throws ProcessingException
- {
- //Generate the signature
- Document samlDocument = response.getResultingDocument();
-
- if(samlDocument == null && trace)
- {
- log.trace("No document generated in the handler chain. Cannot generate signature");
- return;
- }
-
- //Get the Key Pair
- KeyPair keypair = (KeyPair) this.handlerChainConfig.getParameter(GeneralConstants.KEYPAIR);
-
- if(keypair == null)
- {
- log.error("Key Pair cannot be found");
- throw new ProcessingException("KeyPair not found");
- }
-
- SAML2Signature samlSignature = new SAML2Signature();
- //Get the ID from the root
- String id = samlDocument.getDocumentElement().getAttribute("ID");
-
- try
- {
- samlSignature.sign(samlDocument, id, keypair);
- }
- catch (Exception e)
- {
- log.error("Unable to sign:",e);
- throw new ProcessingException("Unable to sign");
- }
- }
-
- public void handleRequestType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException
- {
- //Nothing to do
- }
-}
\ No newline at end of file
Modified: identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers/SAML2SignatureHandlerUnitTestCase.java
===================================================================
--- identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers/SAML2SignatureHandlerUnitTestCase.java 2009-11-13 16:33:59 UTC (rev 940)
+++ identity-federation/trunk/jboss-identity-web/src/test/java/org/jboss/test/identity/federation/web/saml/handlers/SAML2SignatureHandlerUnitTestCase.java 2009-11-13 16:41:37 UTC (rev 941)
@@ -47,7 +47,7 @@
import org.jboss.identity.federation.web.constants.GeneralConstants;
import org.jboss.identity.federation.web.core.HTTPContext;
import org.jboss.identity.federation.web.handlers.saml2.SAML2AuthenticationHandler;
-import org.jboss.identity.federation.web.handlers.saml2.SAML2SignatureHandler;
+import org.jboss.identity.federation.web.handlers.saml2.SAML2SignatureGenerationHandler;
import org.jboss.test.identity.federation.web.mock.MockHttpServletRequest;
import org.jboss.test.identity.federation.web.mock.MockHttpServletResponse;
import org.jboss.test.identity.federation.web.mock.MockHttpSession;
@@ -76,7 +76,7 @@
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
KeyPair keypair = kpg.genKeyPair();
- SAML2SignatureHandler handler = new SAML2SignatureHandler();
+ SAML2SignatureGenerationHandler handler = new SAML2SignatureGenerationHandler();
SAML2HandlerChainConfig chainConfig = new DefaultSAML2HandlerChainConfig();
SAML2HandlerConfig handlerConfig = new DefaultSAML2HandlerConfig();
16 years, 6 months
JBoss Identity SVN: r940 - identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2.
by jboss-identity-commits@lists.jboss.org
Author: anil.saldhana(a)jboss.com
Date: 2009-11-13 11:33:59 -0500 (Fri, 13 Nov 2009)
New Revision: 940
Added:
identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureValidationHandler.java
Modified:
identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureHandler.java
Log:
move sig validation to a new handler
Modified: identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureHandler.java
===================================================================
--- identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureHandler.java 2009-11-13 11:22:34 UTC (rev 939)
+++ identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureHandler.java 2009-11-13 16:33:59 UTC (rev 940)
@@ -22,14 +22,12 @@
package org.jboss.identity.federation.web.handlers.saml2;
import java.security.KeyPair;
-import java.security.PublicKey;
import org.apache.log4j.Logger;
import org.jboss.identity.federation.api.saml.v2.sig.SAML2Signature;
import org.jboss.identity.federation.core.exceptions.ProcessingException;
import org.jboss.identity.federation.core.saml.v2.interfaces.SAML2HandlerRequest;
import org.jboss.identity.federation.core.saml.v2.interfaces.SAML2HandlerResponse;
-import org.jboss.identity.federation.core.util.XMLSignatureUtil;
import org.jboss.identity.federation.web.constants.GeneralConstants;
import org.w3c.dom.Document;
@@ -79,37 +77,9 @@
throw new ProcessingException("Unable to sign");
}
}
-
- /**
- * @see {@code SAML2Handler#handleRequestType(SAML2HandlerRequest, SAML2HandlerResponse)}
- */
+
public void handleRequestType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException
- {
- Document signedDocument = request.getRequestDocument();
- PublicKey publicKey = (PublicKey) request.getOptions().get(GeneralConstants.SENDER_PUBLIC_KEY);
- this.validateSender(signedDocument, publicKey);
+ {
+ //Nothing to do
}
-
- @Override
- public void handleStatusResponseType(SAML2HandlerRequest request, SAML2HandlerResponse response)
- throws ProcessingException
- {
- Document signedDocument = request.getRequestDocument();
- PublicKey publicKey = (PublicKey) request.getOptions().get(GeneralConstants.SENDER_PUBLIC_KEY);
- this.validateSender(signedDocument, publicKey);
- }
-
- private void validateSender(Document signedDocument, PublicKey publicKey)
- throws ProcessingException
- {
- try
- {
- XMLSignatureUtil.validate(signedDocument, publicKey);
- }
- catch (Exception e)
- {
- log.error("Error validating signature:" , e);
- throw new ProcessingException("Error validating signature.");
- }
- }
}
\ No newline at end of file
Added: identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureValidationHandler.java
===================================================================
--- identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureValidationHandler.java (rev 0)
+++ identity-federation/trunk/jboss-identity-web/src/main/java/org/jboss/identity/federation/web/handlers/saml2/SAML2SignatureValidationHandler.java 2009-11-13 16:33:59 UTC (rev 940)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.identity.federation.web.handlers.saml2;
+
+import java.security.PublicKey;
+
+import org.apache.log4j.Logger;
+import org.jboss.identity.federation.core.exceptions.ProcessingException;
+import org.jboss.identity.federation.core.saml.v2.interfaces.SAML2HandlerRequest;
+import org.jboss.identity.federation.core.saml.v2.interfaces.SAML2HandlerResponse;
+import org.jboss.identity.federation.core.util.XMLSignatureUtil;
+import org.jboss.identity.federation.web.constants.GeneralConstants;
+import org.w3c.dom.Document;
+
+/**
+ * @author Anil.Saldhana(a)redhat.com
+ * @since Nov 13, 2009
+ */
+public class SAML2SignatureValidationHandler extends BaseSAML2Handler
+{
+ private static Logger log = Logger.getLogger(SAML2SignatureValidationHandler.class);
+
+ /**
+ * @see {@code SAML2Handler#handleRequestType(SAML2HandlerRequest, SAML2HandlerResponse)}
+ */
+ public void handleRequestType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException
+ {
+ Document signedDocument = request.getRequestDocument();
+ PublicKey publicKey = (PublicKey) request.getOptions().get(GeneralConstants.SENDER_PUBLIC_KEY);
+ this.validateSender(signedDocument, publicKey);
+ }
+
+ @Override
+ public void handleStatusResponseType(SAML2HandlerRequest request, SAML2HandlerResponse response)
+ throws ProcessingException
+ {
+ Document signedDocument = request.getRequestDocument();
+ PublicKey publicKey = (PublicKey) request.getOptions().get(GeneralConstants.SENDER_PUBLIC_KEY);
+ this.validateSender(signedDocument, publicKey);
+ }
+
+ private void validateSender(Document signedDocument, PublicKey publicKey)
+ throws ProcessingException
+ {
+ try
+ {
+ XMLSignatureUtil.validate(signedDocument, publicKey);
+ }
+ catch (Exception e)
+ {
+ log.error("Error validating signature:" , e);
+ throw new ProcessingException("Error validating signature.");
+ }
+ }
+}
\ No newline at end of file
16 years, 6 months
JBoss Identity SVN: r939 - in idm/trunk/integration: deployer/src/main/resources/META-INF and 1 other directories.
by jboss-identity-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2009-11-13 06:22:34 -0500 (Fri, 13 Nov 2009)
New Revision: 939
Removed:
idm/trunk/integration/deployer/src/main/resources/setupdata.txt
Modified:
idm/trunk/integration/deployer/src/main/resources/META-INF/default-jboss-idm.xml
idm/trunk/integration/deployer/src/main/resources/jboss.idm.cfg.xml
idm/trunk/integration/deployer/src/main/resources/jboss.idm.hibernate.cfg.xml
idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/HibernatePopulator.java
idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMService.java
Log:
* remove the setupdata.txt.
Modified: idm/trunk/integration/deployer/src/main/resources/META-INF/default-jboss-idm.xml
===================================================================
--- idm/trunk/integration/deployer/src/main/resources/META-INF/default-jboss-idm.xml 2009-11-13 11:00:24 UTC (rev 938)
+++ idm/trunk/integration/deployer/src/main/resources/META-INF/default-jboss-idm.xml 2009-11-13 11:22:34 UTC (rev 939)
@@ -10,13 +10,12 @@
</hibernateDeployer>
<initializers>
<datasource>java:/jbossidmDS</datasource>
- <!-- sqlInitializer>
+ <sqlInitializer>
<sqlFile>idm-sql/jboss.idm.@database@.create.sql</sqlFile>
<exitSQL>select * from jbid_io</exitSQL>
- </sqlInitializer-->
- <hibernateInitializer>
+ </sqlInitializer>
+ <!-- hibernateInitializer>
<doChecking>true</doChecking>
- <setupLocation>setupdata.txt</setupLocation>
- </hibernateInitializer>
+ </hibernateInitializer-->
</initializers>
</jboss-idm-deployer>
Modified: idm/trunk/integration/deployer/src/main/resources/jboss.idm.cfg.xml
===================================================================
--- idm/trunk/integration/deployer/src/main/resources/jboss.idm.cfg.xml 2009-11-13 11:00:24 UTC (rev 938)
+++ idm/trunk/integration/deployer/src/main/resources/jboss.idm.cfg.xml 2009-11-13 11:22:34 UTC (rev 939)
@@ -93,6 +93,10 @@
<value>java:/IDMHibernateSessionFactory</value>
</option>
<option>
+ <name>addHibernateMappings</name>
+ <value>false</value>
+ </option>
+ <option>
<name>populateRelationshipTypes</name>
<value>true</value>
</option>
Modified: idm/trunk/integration/deployer/src/main/resources/jboss.idm.hibernate.cfg.xml
===================================================================
--- idm/trunk/integration/deployer/src/main/resources/jboss.idm.hibernate.cfg.xml 2009-11-13 11:00:24 UTC (rev 938)
+++ idm/trunk/integration/deployer/src/main/resources/jboss.idm.hibernate.cfg.xml 2009-11-13 11:22:34 UTC (rev 939)
@@ -30,10 +30,12 @@
<property name="show_sql">false</property>
<property name="cache.use_second_level_cache">true</property>
- <property name="cache.use_query_cache">false</property>
+ <property name="cache.use_query_cache">true</property>
<property name="current_session_context_class">thread</property>
-
+
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
+
<!--<property name="connection.datasource"></property>-->
<property name="hibernate.connection.url">jdbc:hsqldb:mem:jbossidm</property>
Deleted: idm/trunk/integration/deployer/src/main/resources/setupdata.txt
===================================================================
--- idm/trunk/integration/deployer/src/main/resources/setupdata.txt 2009-11-13 11:00:24 UTC (rev 938)
+++ idm/trunk/integration/deployer/src/main/resources/setupdata.txt 2009-11-13 11:22:34 UTC (rev 939)
@@ -1,77 +0,0 @@
-import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationshipType;
-import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject;
-import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectType;
-import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationship;
-import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectCredentialType;
-import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectCredential;
-import org.jboss.identity.idm.impl.model.hibernate.HibernateRealm;
-import org.jboss.identity.idm.impl.api.PasswordCredential;
-
-
-try
-{
- session = SessionFactory.openSession();
- tx = session.beginTransaction();
-
- HibernateRealm realm = new HibernateRealm("realm://JBossIdentity");
- session.save(realm);
-
- HibernateIdentityObjectType typeUser = new HibernateIdentityObjectType("USER");
- HibernateIdentityObjectType typeGroup = new HibernateIdentityObjectType("GROUP");
-
- session.save(typeUser);
- session.save(typeGroup);
-
- HibernateIdentityObject userUserObject = new HibernateIdentityObject("user", typeUser, realm);
- HibernateIdentityObject userGroupObject = new HibernateIdentityObject("User", typeGroup, realm);
- HibernateIdentityObject adminUserObject = new HibernateIdentityObject("admin", typeUser, realm);
- HibernateIdentityObject adminGroupObject = new HibernateIdentityObject("Admin", typeGroup, realm);
-
- session.save(userUserObject);
- session.save(userGroupObject);
- session.save(adminUserObject);
- session.save(adminGroupObject);
-
- HibernateIdentityObjectCredentialType passwordType = new HibernateIdentityObjectCredentialType("PASSWORD");
-
- session.save(passwordType);
-
- HibernateIdentityObjectCredential pass1 = new HibernateIdentityObjectCredential();
- PasswordCredential passwordValue = new PasswordCredential("user");
- pass1.setType(passwordType);
- pass1.setTextValue(passwordValue.getEncodedValue().toString());
- userUserObject.addCredential(pass1);
-
- session.save(pass1);
-
- HibernateIdentityObjectCredential pass2 = new HibernateIdentityObjectCredential();
- passwordValue = new PasswordCredential("admin");
- pass2.setType(passwordType);
- pass2.setTextValue(passwordValue.getEncodedValue().toString());
- adminUserObject.addCredential(pass2);
-
-
- session.save(pass2);
-
- HibernateIdentityObjectRelationshipType membership = new HibernateIdentityObjectRelationshipType("JBOSS_IDENTITY_MEMBERSHIP");
-
- session.save(membership);
-
- HibernateIdentityObjectRelationship rel1 = new HibernateIdentityObjectRelationship(membership, adminGroupObject, adminUserObject);
- HibernateIdentityObjectRelationship rel2 = new HibernateIdentityObjectRelationship(membership, userGroupObject, adminUserObject);
- HibernateIdentityObjectRelationship rel3 = new HibernateIdentityObjectRelationship(membership, userGroupObject, userUserObject);
-
- session.save(rel1);
- session.save(rel2);
- session.save(rel3);
-
- session.flush();
-
- tx.commit();
-}
-finally
-{
- if (session != null) {
- session.close();
- }
-}
Modified: idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/HibernatePopulator.java
===================================================================
--- idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/HibernatePopulator.java 2009-11-13 11:00:24 UTC (rev 938)
+++ idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/HibernatePopulator.java 2009-11-13 11:22:34 UTC (rev 939)
@@ -45,15 +45,12 @@
private boolean doChecking;
- private String setupLocation;
-
private Configuration config;
private SessionFactory sessionFactory;
public HibernatePopulator(boolean doChecking, Configuration config) {
this.doChecking = doChecking;
- this.setupLocation = setupLocation;
this.config = config;
}
Modified: idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMService.java
===================================================================
--- idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMService.java 2009-11-13 11:00:24 UTC (rev 938)
+++ idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMService.java 2009-11-13 11:22:34 UTC (rev 939)
@@ -3,22 +3,15 @@
*/
package org.jboss.identity.idm.integration.jboss5;
-import java.lang.reflect.Method;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.InitialContext;
import javax.naming.NamingException;
-import javax.sql.DataSource;
import javax.transaction.TransactionManager;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
-import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.resolver.DialectFactory;
import org.jboss.identity.idm.api.IdentitySessionFactory;
import org.jboss.identity.idm.api.cfg.IdentityConfiguration;
import org.jboss.identity.idm.common.exception.IdentityException;
@@ -165,10 +158,6 @@
deployHibernateSessionFactory(context);
}
- if (datasource != null) {
- checkTargetDB(datasource);
- }
-
if (needToInitializeDBFromScript()) {
SQLPopulator sqlPopulator = new SQLPopulator(datasource, SQLScript, exitSQL);
sqlPopulator.populateSchema();
@@ -297,51 +286,4 @@
return false;
}
- private int getDatabaseMajorVersion(DatabaseMetaData meta)
- {
- try
- {
- Method gdbmvMethod = DatabaseMetaData.class.getMethod("getDatabaseMajorVersion", null);
- return ((Integer)gdbmvMethod.invoke(meta, null)).intValue();
- }
- catch (NoSuchMethodException nsme)
- {
- return 0;
- }
- catch (Throwable t)
- {
- logger.info("could not get database version from JDBC metadata");
- return 0;
- }
- }
-
-
- private void checkTargetDB(String datasource) {
-
- Connection conn = null;
- Dialect dialectName = null;
- try
- {
- DataSource ds = (DataSource)new InitialContext().lookup(datasource);
- conn = ds.getConnection();
- DatabaseMetaData meta = conn.getMetaData();
- String databaseName = meta.getDatabaseProductName();
- int databaseMajorVersion = getDatabaseMajorVersion(meta);
- dialectName = DialectFactory.buildDialect(null, conn);
- logger.fine("Detected dialect " + dialectName + ", database is (" + databaseName + "," + databaseMajorVersion + ")");
- } catch (Exception e) {
- logger.warning(e.getMessage());
- }
- finally
- {
- if (conn != null) {
- try {
- conn.close();
- } catch (SQLException e) {
- logger.log(Level.SEVERE, "error in closing the connection", e);
- }
- }
- }
- }
-
}
16 years, 6 months
JBoss Identity SVN: r938 - in idm/trunk: example/auth/src/main/java and 10 other directories.
by jboss-identity-commits@lists.jboss.org
Author: bdaw
Date: 2009-11-13 06:00:24 -0500 (Fri, 13 Nov 2009)
New Revision: 938
Added:
idm/trunk/example/auth/src/main/java/org/
idm/trunk/example/auth/src/main/java/org/jboss/
idm/trunk/example/auth/src/main/java/org/jboss/identity/
idm/trunk/example/auth/src/main/java/org/jboss/identity/idm/
idm/trunk/example/auth/src/main/java/org/jboss/identity/idm/example/
idm/trunk/example/auth/src/main/java/org/jboss/identity/idm/example/auth/
idm/trunk/example/auth/src/main/java/org/jboss/identity/idm/example/auth/SimplePopulationService.java
Modified:
idm/trunk/example/auth/pom.xml
idm/trunk/example/auth/src/main/resources/META-INF/idm-example-auth-jboss-beans.xml
idm/trunk/example/auth/src/main/resources/idm-example-auth.war/protected/index.jsp
idm/trunk/example/auth/src/main/resources/jboss.idm.hibernate.cfg.xml
idm/trunk/integration/jboss5/pom.xml
Log:
- Fix auth example
Modified: idm/trunk/example/auth/pom.xml
===================================================================
--- idm/trunk/example/auth/pom.xml 2009-11-13 09:58:22 UTC (rev 937)
+++ idm/trunk/example/auth/pom.xml 2009-11-13 11:00:24 UTC (rev 938)
@@ -124,6 +124,10 @@
<configuration>
<tasks>
+ <jar destfile="${basedir}/target/classes/simple-populator.jar"
+ basedir="${basedir}/target/classes/"
+ includes="**/*.class"/>
+
<!-- Exploded -->
<copy todir="${basedir}/target/idm-example-auth-exploded.sar">
<fileset dir="${basedir}/target/classes"/>
@@ -134,9 +138,12 @@
<!-- Packed -->
<jar destfile="${basedir}/target/idm-example-auth.war"
- basedir="${basedir}/target/classes/idm-example-auth.war"
- />
+ basedir="${basedir}/target/classes/idm-example-auth.war"/>
+
+
+
+
<jar destfile="${basedir}/target/idm-example-auth.sar">
<fileset dir="${basedir}/target/classes/"
excludes="idm-example-auth.war/**"/>
Added: idm/trunk/example/auth/src/main/java/org/jboss/identity/idm/example/auth/SimplePopulationService.java
===================================================================
--- idm/trunk/example/auth/src/main/java/org/jboss/identity/idm/example/auth/SimplePopulationService.java (rev 0)
+++ idm/trunk/example/auth/src/main/java/org/jboss/identity/idm/example/auth/SimplePopulationService.java 2009-11-13 11:00:24 UTC (rev 938)
@@ -0,0 +1,88 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2009, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+
+package org.jboss.identity.idm.example.auth;
+
+import org.jboss.identity.idm.api.IdentitySession;
+import org.jboss.identity.idm.api.IdentitySessionFactory;
+import org.jboss.identity.idm.api.User;
+import org.jboss.identity.idm.api.Group;
+
+import javax.naming.InitialContext;
+import javax.naming.Context;
+import java.util.logging.Logger;
+
+public class SimplePopulationService
+{
+
+ private static Logger logger = Logger.getLogger(SimplePopulationService.class.getName());
+
+ private String idmSessionFactoryJNDI = "java:/IdentitySessionFactory";
+
+ public String getIdmSessionFactoryJNDI()
+ {
+ return idmSessionFactoryJNDI;
+ }
+
+ public void setIdmSessionFactoryJNDI(String idmSessionFactoryJNDI)
+ {
+ this.idmSessionFactoryJNDI = idmSessionFactoryJNDI;
+ }
+
+ public void start() throws Exception
+ {
+
+ logger.fine("Starting example population service");
+
+ Context ctx = new InitialContext();
+ IdentitySessionFactory ids = (IdentitySessionFactory)ctx.lookup(getIdmSessionFactoryJNDI());
+
+ IdentitySession is = ids.getCurrentIdentitySession("realm://JBossIdentity");
+ is.beginTransaction();
+
+ if (is.getPersistenceManager().getUserCount() == 0 && is.getPersistenceManager().getGroupTypeCount("GROUP") == 0)
+ {
+ logger.fine("Database content not present. Populating...");
+
+
+ User userUser = is.getPersistenceManager().createUser("user");
+ User adminUser = is.getPersistenceManager().createUser("admin");
+ Group userGroup = is.getPersistenceManager().createGroup("Users", "GROUP");
+ Group adminGroup = is.getPersistenceManager().createGroup("Administrators", "GROUP");
+
+ is.getAttributesManager().updatePassword(userUser, "user");
+ is.getAttributesManager().updatePassword(adminUser, "admin");
+
+ is.getRelationshipManager().associateUser(adminGroup, adminUser);
+ is.getRelationshipManager().associateUser(userGroup, adminUser);
+ is.getRelationshipManager().associateUser(userGroup, userUser);
+
+ }
+
+
+ is.getTransaction().commit();
+
+
+
+ }
+}
Modified: idm/trunk/example/auth/src/main/resources/META-INF/idm-example-auth-jboss-beans.xml
===================================================================
--- idm/trunk/example/auth/src/main/resources/META-INF/idm-example-auth-jboss-beans.xml 2009-11-13 09:58:22 UTC (rev 937)
+++ idm/trunk/example/auth/src/main/resources/META-INF/idm-example-auth-jboss-beans.xml 2009-11-13 11:00:24 UTC (rev 938)
@@ -11,13 +11,18 @@
<parameter>jboss.idm.cfg.xml</parameter>
</constructor>
<property name="doChecking">true</property>
- <property name="setupLocation">setup.txt</property>
<property name="idmSessionFactoryJNDI">java:/IdentitySessionFactory</property>
<property name="hibernateSessionFactoryRegistryName">hibernateSessionFactory</property>
- <property name="hibernateConfigLocation">jboss.idm.hibernate.cfg.xml</property>
+ <property name="hibernateConfigLocation">jboss.idm.hibernate.cfg.xml</property>
<depends>TransactionManager</depends>
</bean>
+ <bean name="IDMExamplePopulationService"
+ class="org.jboss.identity.idm.example.auth.SimplePopulationService">
+ <property name="idmSessionFactoryJNDI">java:/IdentitySessionFactory</property>
+ <depends>idm.example.auth.IDMService</depends>
+ </bean>
+
<application-policy xmlns="urn:jboss:security-beans:1.0" name="ExampleJBossIdentityIDMSecurityRealm">
<authentication>
<login-module code = "org.jboss.identity.idm.auth.JBossIdentityIDMLoginModule"
Modified: idm/trunk/example/auth/src/main/resources/idm-example-auth.war/protected/index.jsp
===================================================================
--- idm/trunk/example/auth/src/main/resources/idm-example-auth.war/protected/index.jsp 2009-11-13 09:58:22 UTC (rev 937)
+++ idm/trunk/example/auth/src/main/resources/idm-example-auth.war/protected/index.jsp 2009-11-13 11:00:24 UTC (rev 938)
@@ -41,7 +41,9 @@
out.println(group.getName());
}
+ is.getTransaction().commit();
+
}
catch (NamingException e)
{
Modified: idm/trunk/example/auth/src/main/resources/jboss.idm.hibernate.cfg.xml
===================================================================
--- idm/trunk/example/auth/src/main/resources/jboss.idm.hibernate.cfg.xml 2009-11-13 09:58:22 UTC (rev 937)
+++ idm/trunk/example/auth/src/main/resources/jboss.idm.hibernate.cfg.xml 2009-11-13 11:00:24 UTC (rev 938)
@@ -28,10 +28,13 @@
<hibernate-configuration>
<session-factory>
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
+
<property name="show_sql">false</property>
<property name="cache.use_second_level_cache">true</property>
- <property name="cache.use_query_cache">false</property>
+ <property name="cache.use_query_cache">true</property>
+
<property name="current_session_context_class">thread</property>
<property name="hibernate.connection.url">jdbc:hsqldb:mem:jbossidm</property>
Modified: idm/trunk/integration/jboss5/pom.xml
===================================================================
--- idm/trunk/integration/jboss5/pom.xml 2009-11-13 09:58:22 UTC (rev 937)
+++ idm/trunk/integration/jboss5/pom.xml 2009-11-13 11:00:24 UTC (rev 938)
@@ -33,12 +33,6 @@
<artifactId>idm-ldap</artifactId>
<version>${version}</version>
</dependency>
- <dependency>
- <groupId>bsh</groupId>
- <artifactId>bsh</artifactId>
- <version>1.3.0</version>
- </dependency>
-
</dependencies>
<!-- Build -->
16 years, 6 months
JBoss Identity SVN: r937 - in idm/trunk/integration: jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5 and 1 other directory.
by jboss-identity-commits@lists.jboss.org
Author: bdaw
Date: 2009-11-13 04:58:22 -0500 (Fri, 13 Nov 2009)
New Revision: 937
Modified:
idm/trunk/integration/deployer/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMDeployer.java
idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/HibernatePopulator.java
idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMService.java
Log:
- remove bsh usage
Modified: idm/trunk/integration/deployer/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMDeployer.java
===================================================================
--- idm/trunk/integration/deployer/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMDeployer.java 2009-11-13 08:51:49 UTC (rev 936)
+++ idm/trunk/integration/deployer/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMDeployer.java 2009-11-13 09:58:22 UTC (rev 937)
@@ -58,7 +58,6 @@
service.setExitSQL(initializers.getSqlInitializer().getExitSQL());
}
if (initializers.getHibernateInitializer() != null) {
- service.setSetupLocation(initializers.getHibernateInitializer().getSetupLocation());
service.setDoChecking(initializers.getHibernateInitializer().isDoChecking());
}
}
Modified: idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/HibernatePopulator.java
===================================================================
--- idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/HibernatePopulator.java 2009-11-13 08:51:49 UTC (rev 936)
+++ idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/HibernatePopulator.java 2009-11-13 09:58:22 UTC (rev 937)
@@ -6,13 +6,11 @@
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URL;
import java.util.Collection;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
-import javax.transaction.TransactionManager;
import org.hibernate.Query;
import org.hibernate.Session;
@@ -22,13 +20,7 @@
import org.hibernate.metadata.ClassMetadata;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.hibernate.tool.hbm2ddl.SchemaUpdate;
-import org.jboss.identity.idm.common.transaction.TransactionManagerProvider;
-import org.jboss.identity.idm.common.transaction.Transactions;
-import org.jboss.identity.idm.impl.helper.SecurityActions;
-import bsh.EvalError;
-import bsh.Interpreter;
-
/**
*
* Using the Hibernate built-in SchemaExport.
@@ -59,7 +51,7 @@
private SessionFactory sessionFactory;
- public HibernatePopulator(boolean doChecking, String setupLocation, Configuration config) {
+ public HibernatePopulator(boolean doChecking, Configuration config) {
this.doChecking = doChecking;
this.setupLocation = setupLocation;
this.config = config;
@@ -82,8 +74,6 @@
break;
case RESULT_CREATE:
createSchema();
- createContent();
-
break;
}
} else {
@@ -172,52 +162,7 @@
SchemaUpdate update = new SchemaUpdate(config);
update.execute(false, true);
}
-
-
- private void createContent()
- {
-
- if (setupLocation != null) {
- URL setupResource = SecurityActions.getContextClassLoader().getResource(setupLocation) ;
- if ( setupResource != null ) {
- try
- {
- logger.info("Creating database content");
- final String script = getString(setupResource.openStream());
-
- // Create an interpreter and configures it
- final Interpreter interpreter = new Interpreter();
- interpreter.setClassLoader(Thread.currentThread().getContextClassLoader());
- interpreter.setOut(System.out);
- interpreter.set("SessionFactory", sessionFactory);
-
- TransactionManager tm = TransactionManagerProvider.JBOSS_PROVIDER.getTransactionManager();
- Transactions.required(tm, new Transactions.Runnable()
- {
- public Object run() throws Exception
- {
- interpreter.eval(script);
- return null;
- }
- });
- }
- catch (EvalError e)
- {
- logger.info("Error in the bsh script: " + e);
- }
- catch (IllegalStateException e)
- {
- logger.info("Cannot load setup script: " + e);
- }
- catch (Exception e)
- {
- logger.info("Error in bsh script execution: " + e);
- }
- }
- }
- }
-
private String getString(InputStream in) {
try {
ByteArrayOutputStream out = new ByteArrayOutputStream(in.available());
Modified: idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMService.java
===================================================================
--- idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMService.java 2009-11-13 08:51:49 UTC (rev 936)
+++ idm/trunk/integration/jboss5/src/main/java/org/jboss/identity/idm/integration/jboss5/IDMService.java 2009-11-13 09:58:22 UTC (rev 937)
@@ -56,11 +56,6 @@
/** If hibernateConfigLocation option is present created SessionFactory will be registered in JNDI with this name*/
private String hibernateSessionFactoryJNDIName;
- /** BSH script. If "doChecking" option is set and schema need to be created provided script will be invoked. This will
- * happen after IdentitySessionFactory is created. hibernateSessionFactory and identitySessionFactory object
- * are accessible in the script. */
- private String setupLocation;
-
/** If true checks the schema existence on start and create it if necessary. */
private boolean doChecking;
@@ -120,16 +115,6 @@
this.hibernateConfigLocation = hibernateConfigLocation;
}
- public String getSetupLocation()
- {
- return setupLocation;
- }
-
- public void setSetupLocation(String setupLocation)
- {
- this.setupLocation = setupLocation;
- }
-
public boolean isDoChecking()
{
return doChecking;
@@ -168,7 +153,7 @@
this.transactionManager = transactionManager;
}
-public void start() throws Exception {
+ public void start() throws Exception {
logger.info("Starting the JBoss Identity Management Service");
@@ -201,7 +186,7 @@
}
Configuration configuration = new Configuration().configure(hibernateConfigLocation);
logger.fine("starting to populate the schema from file [" + hibernateConfigLocation + "]");
- HibernatePopulator hibernatePopulator = new HibernatePopulator(doChecking, setupLocation, configuration);
+ HibernatePopulator hibernatePopulator = new HibernatePopulator(doChecking, configuration);
hibernatePopulator.populateSchema();
}
16 years, 6 months
JBoss Identity SVN: r936 - in idm/trunk: idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api and 1 other directory.
by jboss-identity-commits@lists.jboss.org
Author: bdaw
Date: 2009-11-13 03:51:49 -0500 (Fri, 13 Nov 2009)
New Revision: 936
Modified:
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java
Log:
- revert binary comparision in hql
Modified: idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
===================================================================
--- idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-11-13 08:45:08 UTC (rev 935)
+++ idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-11-13 08:51:49 UTC (rev 936)
@@ -2099,7 +2099,8 @@
}
else
{
- queryString.append(" and :value = a.binaryValue");
+ // No support for blob comparision
+ return null;
}
@@ -2118,10 +2119,6 @@
i++;
}
}
- else
- {
- q.setParameter("value", attribute.getValue());
- }
List<HibernateIdentityObjectAttribute> attrs = (List<HibernateIdentityObjectAttribute>)q.list();
Modified: idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java
===================================================================
--- idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java 2009-11-13 08:45:08 UTC (rev 935)
+++ idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java 2009-11-13 08:51:49 UTC (rev 936)
@@ -308,7 +308,6 @@
new SimpleAttribute("picture", new byte[][]{picture}),
};
- assertNull(session.getAttributesManager().findUserByUniqueAttribute("picture", picture));
session.getAttributesManager().addAttributes(bdawidowUser, userInfo);
16 years, 6 months
JBoss Identity SVN: r935 - in idm/trunk/assembly: src/main and 2 other directories.
by jboss-identity-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2009-11-13 03:45:08 -0500 (Fri, 13 Nov 2009)
New Revision: 935
Modified:
idm/trunk/assembly/pom.xml
idm/trunk/assembly/src/main/build.properties
idm/trunk/assembly/src/main/files/jboss/build.xml
idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/hsqldb.hibernate.cfg.xml
idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/hsqldburl.hibernate.cfg.xml
idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/mssql.hibernate.cfg.xml
idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/mysql.hibernate.cfg.xml
idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/oracle.hibernate.cfg.xml
idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/postgresql.hibernate.cfg.xml
idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/sybase.hibernate.cfg.xml
Log:
* update
Modified: idm/trunk/assembly/pom.xml
===================================================================
--- idm/trunk/assembly/pom.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/pom.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -24,10 +24,10 @@
<mysql.connector.version>5.0.8</mysql.connector.version>
<postgresql.version>8.3-603.jdbc3</postgresql.version>
<jtds.version>1.2.2</jtds.version>
-
</properties>
<dependencies>
+
<dependency>
<groupId>org.jboss.identity.idm</groupId>
<artifactId>idm-api</artifactId>
@@ -82,26 +82,22 @@
<type>zip</type>
<version>${idm.version}</version>
</dependency>
-
-
+
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>${hibernate-commons-annotations}</version>
</dependency>
-
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-tools</artifactId>
<version>${hibernate-tools-version}</version>
</dependency>
-
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb-version}</version>
- </dependency>
-
+ </dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
Modified: idm/trunk/assembly/src/main/build.properties
===================================================================
--- idm/trunk/assembly/src/main/build.properties 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/build.properties 2009-11-13 08:45:08 UTC (rev 935)
@@ -1,4 +1,4 @@
-jbossidm.home=.
+jbossidm.home=..
database=hsqldburl
jboss.home=/local/deploy/jboss-5.0.1.GA
jboss.server.configuration=default
\ No newline at end of file
Modified: idm/trunk/assembly/src/main/files/jboss/build.xml
===================================================================
--- idm/trunk/assembly/src/main/files/jboss/build.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/files/jboss/build.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -84,7 +84,7 @@
<target name="internal.install.jbossidm.into.jboss.db.mysql">
<copy todir="${jboss.server.config.dir}/deploy/idm/idm-service.sar" overwrite="true">
<fileset dir="${jbossidm.home}/lib">
- <include name="mysql-connector-java.jar"/>
+ <include name="mysql-connector-java-*.jar"/>
</fileset>
</copy>
</target>
@@ -99,20 +99,29 @@
<!-- ### THE POSTGRESQL SPECIFIC PART ################################### -->
<target name="internal.install.jbossidm.into.jboss.db.postgresql">
- <copy file="${jbossidm.home}/lib/postgresql.jar"
- todir="${jboss.server.config.dir}/deploy/idm/idm-service.sar" />
+ <copy todir="${jboss.server.config.dir}/deploy/idm/idm-service.sar" overwrite="true">
+ <fileset dir="${jbossidm.home}/lib">
+ <include name="postgresql-*.jar"/>
+ </fileset>
+ </copy>
</target>
<!--### THE SYBASE SPECIFIC PART ######################################## -->
<target name="internal.install.jbossidm.into.jboss.db.sybase">
- <copy file="${jbossidm.home}/lib/jtds.jar"
- todir="${jboss.server.config.dir}/deploy/idm/idm-service.sar" />
+ <copy todir="${jboss.server.config.dir}/deploy/idm/idm-service.sar" overwrite="true">
+ <fileset dir="${jbossidm.home}/lib">
+ <include name="jtds-*.jar"/>
+ </fileset>
+ </copy>
</target>
<!--### THE MSSQL SPECIFIC PART ######################################## -->
<target name="internal.install.jbossidm.into.jboss.db.mssql">
- <copy file="${jbossidm.home}/lib/jtds.jar"
- todir="${jboss.server.config.dir}/deploy/idm/idm-service.sar" />
+ <copy todir="${jboss.server.config.dir}/deploy/idm/idm-service.sar" overwrite="true">
+ <fileset dir="${jbossidm.home}/lib">
+ <include name="jtds-*.jar"/>
+ </fileset>
+ </copy>
</target>
</project>
Modified: idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/hsqldb.hibernate.cfg.xml
===================================================================
--- idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/hsqldb.hibernate.cfg.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/hsqldb.hibernate.cfg.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -33,6 +33,8 @@
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
+
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.connection.datasource">java:jbossidmDS</property>
Modified: idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/hsqldburl.hibernate.cfg.xml
===================================================================
--- idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/hsqldburl.hibernate.cfg.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/hsqldburl.hibernate.cfg.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -33,7 +33,9 @@
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
-
+
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
+
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="hibernate.connection.datasource">java:jbossidmDS</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
Modified: idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/mssql.hibernate.cfg.xml
===================================================================
--- idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/mssql.hibernate.cfg.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/mssql.hibernate.cfg.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -30,6 +30,8 @@
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
+
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<!-- ask hibernate to do the schema population -->
<!-- property name="hibernate.hbm2ddl.auto">create-drop</property-->
Modified: idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/mysql.hibernate.cfg.xml
===================================================================
--- idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/mysql.hibernate.cfg.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/mysql.hibernate.cfg.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -33,6 +33,8 @@
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
+
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.datasource">java:jbossidmDS</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
Modified: idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/oracle.hibernate.cfg.xml
===================================================================
--- idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/oracle.hibernate.cfg.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/oracle.hibernate.cfg.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -33,6 +33,8 @@
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
+
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="hibernate.connection.datasource">java:jbossidmDS</property>
Modified: idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/postgresql.hibernate.cfg.xml
===================================================================
--- idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/postgresql.hibernate.cfg.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/postgresql.hibernate.cfg.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -33,6 +33,8 @@
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
+
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.datasource">java:jbossidmDS</property>
Modified: idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/sybase.hibernate.cfg.xml
===================================================================
--- idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/sybase.hibernate.cfg.xml 2009-11-12 23:56:38 UTC (rev 934)
+++ idm/trunk/assembly/src/main/files/jboss/hibernate.cfg/sybase.hibernate.cfg.xml 2009-11-13 08:45:08 UTC (rev 935)
@@ -30,6 +30,8 @@
<property name="cache.use_second_level_cache">true</property>
<property name="cache.use_query_cache">true</property>
+
+ <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
<!-- ask hibernate to do the schema population -->
<!-- property name="hibernate.hbm2ddl.auto">create-drop</property-->
16 years, 6 months
JBoss Identity SVN: r934 - in identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust: plugins/saml and 1 other directories.
by jboss-identity-commits@lists.jboss.org
Author: sguilhen(a)redhat.com
Date: 2009-11-12 18:56:38 -0500 (Thu, 12 Nov 2009)
New Revision: 934
Modified:
identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/JBossSTS.java
identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/StandardRequestHandler.java
identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/plugins/saml/SAML20TokenProvider.java
identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/wrappers/RequestSecurityToken.java
Log:
JBID-212: implemented renew token logic in StandardRequestHandler and SAML20TokenProvider
Modified: identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/JBossSTS.java
===================================================================
--- identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/JBossSTS.java 2009-11-12 23:28:01 UTC (rev 933)
+++ identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/JBossSTS.java 2009-11-12 23:56:38 UTC (rev 934)
@@ -133,9 +133,13 @@
Document doc = handler.postProcess((Document)((DOMSource)source).getNode(), request);
return new DOMSource(doc);
}
-
else if (requestType.equals(WSTrustConstants.RENEW_REQUEST))
- return this.marshallResponse(handler.renew(request, this.context.getUserPrincipal()));
+ {
+ Source source = this.marshallResponse(handler.renew(request, this.context.getUserPrincipal()));
+ // we need to sign/encrypt renewed tokens.
+ Document document = handler.postProcess((Document)((DOMSource) source).getNode(), request);
+ return new DOMSource(document);
+ }
else if (requestType.equals(WSTrustConstants.CANCEL_REQUEST))
return this.marshallResponse(handler.cancel(request, this.context.getUserPrincipal()));
else if (requestType.equals(WSTrustConstants.VALIDATE_REQUEST))
Modified: identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/StandardRequestHandler.java
===================================================================
--- identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/StandardRequestHandler.java 2009-11-12 23:28:01 UTC (rev 933)
+++ identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/StandardRequestHandler.java 2009-11-12 23:56:38 UTC (rev 934)
@@ -32,7 +32,6 @@
import javax.xml.bind.JAXBElement;
import javax.xml.crypto.dsig.DigestMethod;
import javax.xml.crypto.dsig.SignatureMethod;
-import javax.xml.namespace.QName;
import org.apache.log4j.Logger;
import org.jboss.identity.federation.core.exceptions.ProcessingException;
@@ -288,72 +287,69 @@
public RequestSecurityTokenResponse renew(RequestSecurityToken request, Principal callerPrincipal)
throws WSTrustException
{
- Document rstDocument = request.getRSTDocument();
- if (rstDocument == null)
- throw new IllegalArgumentException("Request does not contain the DOM Document");
-
- SecurityTokenProvider provider = null;
-
- // first try to obtain the security token provider using the applies-to contents.
- AppliesTo appliesTo = request.getAppliesTo();
- PublicKey providerPublicKey = null;
- if (appliesTo != null)
+ // first validate the provided token signature to make sure it has been issued by this STS and hasn't been tempered.
+ if (trace)
+ log.trace("Validating token for renew request " + request.getContext());
+ if (request.getRenewTarget() == null)
+ throw new WSTrustException("Unable to renew token: renew target is null");
+
+ Node securityToken = request.getRenewTargetElement().getFirstChild();
+ if (this.configuration.signIssuedToken() && this.configuration.getSTSKeyPair() != null)
{
- String serviceName = WSTrustUtil.parseAppliesTo(appliesTo);
- if (serviceName != null)
+ KeyPair keyPair = this.configuration.getSTSKeyPair();
+ try
{
- provider = this.configuration.getProviderForService(serviceName);
- request.setTokenType(URI.create(this.configuration.getTokenTypeForService(serviceName)));
- providerPublicKey = this.configuration.getServiceProviderPublicKey(serviceName);
+ Document tokenDocument = DocumentUtil.createDocument();
+ Node importedNode = tokenDocument.importNode(securityToken, true);
+ tokenDocument.appendChild(importedNode);
+ if (!XMLSignatureUtil.validate(tokenDocument, keyPair.getPublic()))
+ throw new WSTrustException("Validation failure during renewal: digital signature is invalid");
}
+ catch (Exception e)
+ {
+ throw new WSTrustException("Validation failure during renewal: unable to verify digital signature", e);
+ }
}
- // if applies-to is not available or if no provider was found for the service, use the token type.
- if (provider == null && request.getTokenType() != null)
+ else
{
- provider = this.configuration.getProviderForTokenType(request.getTokenType().toString());
+ if (trace)
+ log.trace("Security Token digital signature has NOT been verified. Either the STS has been configured"
+ + "not to sign tokens or the STS key pair has not been properly specified.");
}
- else if (appliesTo == null && request.getTokenType() == null)
- throw new WSTrustException("Either AppliesTo or TokenType must be present in a security token request");
-
- if (provider != null)
+
+ // set default values where needed.
+ if (request.getLifetime() == null && this.configuration.getIssuedTokenTimeout() != 0)
{
- // create the request context and delegate token generation to the provider.
- WSTrustRequestContext requestContext = new WSTrustRequestContext(request, callerPrincipal);
- requestContext.setTokenIssuer(this.configuration.getSTSName());
- if (request.getLifetime() == null && this.configuration.getIssuedTokenTimeout() != 0)
- {
- // if no lifetime has been specified, use the configured timeout value.
- request.setLifetime(WSTrustUtil.createDefaultLifetime(this.configuration.getIssuedTokenTimeout()));
- }
- requestContext.setServiceProviderPublicKey(providerPublicKey);
- provider.renewToken(requestContext);
+ // if no lifetime has been specified, use the configured timeout value.
+ if (log.isDebugEnabled())
+ log.debug("Lifetime has not been specified. Using the default timeout value.");
+ request.setLifetime(WSTrustUtil.createDefaultLifetime(this.configuration.getIssuedTokenTimeout()));
+ }
- if (requestContext.getSecurityToken() == null)
- throw new WSTrustException("Token issued by provider " + provider.getClass().getName() + " is null");
+ // create a context and dispatch to the proper security token provider for renewal.
+ WSTrustRequestContext context = new WSTrustRequestContext(request, callerPrincipal);
+ SecurityTokenProvider provider = this.configuration.getProviderForTokenElementNS(securityToken.getLocalName(),
+ securityToken.getNamespaceURI());
+ if (provider == null)
+ throw new WSTrustException("No SecurityTokenProvider configured for " + securityToken.getNamespaceURI() + ":"
+ + securityToken.getLocalName());
+ provider.renewToken(context);
+
+ // create the WS-Trust response with the renewed token.
+ RequestedSecurityTokenType requestedSecurityToken = new RequestedSecurityTokenType();
+ requestedSecurityToken.setAny(context.getSecurityToken().getTokenValue());
- // construct the ws-trust security token response.
- RequestedSecurityTokenType requestedSecurityToken = new RequestedSecurityTokenType();
- requestedSecurityToken.setAny(requestContext.getSecurityToken().getTokenValue());
-
- RequestSecurityTokenResponse response = new RequestSecurityTokenResponse();
- if (request.getContext() != null)
- response.setContext(request.getContext());
-
- response.setTokenType(request.getTokenType());
- response.setLifetime(request.getLifetime());
- response.setAppliesTo(appliesTo);
- response.setRequestedSecurityToken(requestedSecurityToken);
-
- // set the attached and unattached references.
- if (requestContext.getAttachedReference() != null)
- response.setRequestedAttachedReference(requestContext.getAttachedReference());
- if (requestContext.getUnattachedReference() != null)
- response.setRequestedUnattachedReference(requestContext.getUnattachedReference());
-
- return response;
- }
- else
- throw new WSTrustException("Unable to find a token provider for the token request");
+ RequestSecurityTokenResponse response = new RequestSecurityTokenResponse();
+ if (request.getContext() != null)
+ response.setContext(request.getContext());
+ response.setTokenType(request.getTokenType());
+ response.setLifetime(request.getLifetime());
+ response.setRequestedSecurityToken(requestedSecurityToken);
+ if (context.getAttachedReference() != null)
+ response.setRequestedAttachedReference(context.getAttachedReference());
+ if (context.getUnattachedReference() != null)
+ response.setRequestedUnattachedReference(context.getUnattachedReference());
+ return response;
}
/*
Modified: identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/plugins/saml/SAML20TokenProvider.java
===================================================================
--- identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/plugins/saml/SAML20TokenProvider.java 2009-11-12 23:28:01 UTC (rev 933)
+++ identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/plugins/saml/SAML20TokenProvider.java 2009-11-12 23:56:38 UTC (rev 934)
@@ -70,8 +70,7 @@
{
private static Logger logger = Logger.getLogger(SAML20TokenProvider.class);
-
- @SuppressWarnings("unused")
+
private Map<String, String> properties;
/*
@@ -83,7 +82,7 @@
{
this.properties = properties;
}
-
+
/*
* (non-Javadoc)
*
@@ -103,7 +102,6 @@
{
// generate an id for the new assertion.
String assertionID = IDGenerator.create("ID_");
-
issueToken(context, assertionID);
}
@@ -114,11 +112,58 @@
*/
public void renewToken(WSTrustRequestContext context) throws WSTrustException
{
- Element assertion = (Element) context.getRequestSecurityToken().getRenewTarget().getAny();
-
- String id = assertion.getAttribute("ID");
+ // get the specified assertion that must be renewed.
+ Element token = (Element) context.getRequestSecurityToken().getRenewTargetElement();
+ if (token == null)
+ throw new WSTrustException("Invalid renew request: missing required RenewTarget");
+ Element oldAssertionElement = (Element) token.getFirstChild();
+ if (!this.isAssertion(oldAssertionElement))
+ throw new WSTrustException("RenewTarget doesn't not contain a SAMLV2.0 assertion");
- issueToken(context, id); //Just reissue
+ // get the JAXB representation of the old assertion.
+ AssertionType oldAssertion = null;
+ try
+ {
+ oldAssertion = SAMLUtil.fromElement(oldAssertionElement);
+ }
+ catch (JAXBException je)
+ {
+ throw new WSTrustException("Error unmarshalling assertion", je);
+ }
+
+ // adjust the lifetime for the renewed assertion.
+ ConditionsType conditions = oldAssertion.getConditions();
+ conditions.setNotBefore(context.getRequestSecurityToken().getLifetime().getCreated());
+ conditions.setNotOnOrAfter(context.getRequestSecurityToken().getLifetime().getExpires());
+
+ // create a new unique ID for the renewed assertion.
+ String assertionID = IDGenerator.create("ID_");
+
+ // create the new assertion.
+ AssertionType newAssertion = SAMLAssertionFactory.createAssertion(assertionID, oldAssertion.getIssuer(), context
+ .getRequestSecurityToken().getLifetime().getCreated(), conditions, oldAssertion.getSubject(), oldAssertion
+ .getStatementOrAuthnStatementOrAuthzDecisionStatement());
+
+ // create a security token with the new assertion.
+ Element assertionElement = null;
+ try
+ {
+ assertionElement = SAMLUtil.toElement(newAssertion);
+ }
+ catch (Exception e)
+ {
+ throw new WSTrustException("Failed to marshall SAMLV2 assertion", e);
+ }
+ SecurityToken securityToken = new StandardSecurityToken(context.getRequestSecurityToken().getTokenType().toString(),
+ assertionElement, assertionID);
+ context.setSecurityToken(securityToken);
+
+ // set the SAML assertion attached reference.
+ KeyIdentifierType keyIdentifier = WSTrustUtil.createKeyIdentifier(SAMLUtil.SAML2_VALUE_TYPE, "#" + assertionID);
+ Map<QName, String> attributes = new HashMap<QName, String>();
+ attributes.put(new QName(WSTrustConstants.WSSE11_NS, "TokenType"), SAMLUtil.SAML2_TOKEN_TYPE);
+ RequestedReferenceType attachedReference = WSTrustUtil.createRequestedReference(keyIdentifier, attributes);
+ context.setAttachedReference(attachedReference);
}
/*
@@ -131,28 +176,28 @@
{
if (logger.isTraceEnabled())
logger.trace("SAML V2.0 token validation started");
-
+
// get the SAML assertion that must be validated.
ValidateTargetType validateTarget = context.getRequestSecurityToken().getValidateTarget();
- if(validateTarget == null)
- throw new WSTrustException("Invalid validate message: missing required ValidateTarget");
-
+ if (validateTarget == null)
+ throw new WSTrustException("Bad validate request: missing required ValidateTarget");
+
String code = WSTrustConstants.STATUS_CODE_VALID;
String reason = "SAMLV2.0 Assertion successfuly validated";
-
+
AssertionType assertion = null;
-
+
Object assertionObj = validateTarget.getAny();
- if(assertionObj instanceof JAXBElement)
+ if (assertionObj instanceof JAXBElement)
{
JAXBElement<AssertionType> assertionType = (JAXBElement<AssertionType>) validateTarget.getAny();
- assertion = assertionType.getValue();
+ assertion = assertionType.getValue();
}
- else if(assertionObj instanceof Element)
+ else if (assertionObj instanceof Element)
{
Element assertionElement = (Element) assertionObj;
-
- if(!this.isAssertion(assertionElement))
+
+ if (!this.isAssertion(assertionElement))
{
code = WSTrustConstants.STATUS_CODE_INVALID;
reason = "Validation failure: supplied token is not a SAMLV2.0 Assertion";
@@ -165,21 +210,21 @@
}
catch (JAXBException e)
{
- throw new WSTrustException("Unmarshalling error:",e);
+ throw new WSTrustException("Unmarshalling error:", e);
}
}
}
-
+
// check the assertion lifetime.
try
- {
- if(AssertionUtil.hasExpired(assertion))
+ {
+ if (AssertionUtil.hasExpired(assertion))
{
code = WSTrustConstants.STATUS_CODE_INVALID;
reason = "Validation failure: assertion expired or used before its lifetime period";
}
}
- catch(Exception ce)
+ catch (Exception ce)
{
code = WSTrustConstants.STATUS_CODE_INVALID;
reason = "Validation failure: unable to verify assertion lifetime: " + ce.getMessage();
@@ -191,7 +236,7 @@
status.setReason(reason);
context.setStatus(status);
}
-
+
/**
* <p>
* Checks whether the specified element is a SAMLV2.0 assertion or not.
@@ -205,7 +250,7 @@
return element == null ? false : "Assertion".equals(element.getLocalName())
&& WSTrustConstants.SAML2_ASSERTION_NS.equals(element.getNamespaceURI());
}
-
+
/**
* Issue a SAML assertion token with the provided ID
* @param context
@@ -234,7 +279,7 @@
else
confirmationMethod = SAMLUtil.SAML2_BEARER_URI;
// TODO: implement the SENDER_VOUCHES scenario.
-
+
SubjectConfirmationType subjectConfirmation = SAMLAssertionFactory.createSubjectConfirmation(null,
confirmationMethod, keyInfoDataType);
@@ -247,12 +292,12 @@
// create the attribute statements if necessary.
List<StatementAbstractType> statements = null;
Map<String, Object> claimedAttributes = context.getClaimedAttributes();
- if(claimedAttributes != null)
+ if (claimedAttributes != null)
{
statements = new ArrayList<StatementAbstractType>();
statements.add(StatementUtil.createAttributeStatement(claimedAttributes));
}
-
+
// create the SAML assertion.
NameIDType issuerID = SAMLAssertionFactory.createNameID(null, null, context.getTokenIssuer());
AssertionType assertion = SAMLAssertionFactory.createAssertion(assertionID, issuerID, lifetime.getCreated(),
Modified: identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/wrappers/RequestSecurityToken.java
===================================================================
--- identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/wrappers/RequestSecurityToken.java 2009-11-12 23:28:01 UTC (rev 933)
+++ identity-federation/trunk/jboss-identity-fed-core/src/main/java/org/jboss/identity/federation/core/wstrust/wrappers/RequestSecurityToken.java 2009-11-12 23:56:38 UTC (rev 934)
@@ -1102,6 +1102,28 @@
/**
* <p>
+ * Returns the element in the document that represents the renew target type.
+ * </p>
+ *
+ * @return the {@code Element} that represents the renew target type, or {@code null} if no renew target is found in
+ * the document.
+ */
+ public Element getRenewTargetElement()
+ {
+ if(this.rstDocument == null)
+ throw new IllegalStateException("RST Document is null");
+ String ns = "http://docs.oasis-open.org/ws-sx/ws-trust/200512/";
+ String localName = "RenewTarget";
+
+ NodeList nodeList = rstDocument.getElementsByTagNameNS(ns,localName);
+ if(nodeList != null && nodeList.getLength() > 0)
+ return (Element) nodeList.item(0);
+ else
+ return null;
+ }
+
+ /**
+ * <p>
* Sets the {@code ValidateTarged} section of the request. This elements identifies the token that is to be
* validated.
* </p>
16 years, 6 months
JBoss Identity SVN: r933 - in idm/trunk: idm-hibernate/src/main/resources/mappings and 3 other directories.
by jboss-identity-commits@lists.jboss.org
Author: bdaw
Date: 2009-11-12 18:28:01 -0500 (Thu, 12 Nov 2009)
New Revision: 933
Added:
idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/store/hibernate/EvilBinaryTestCase.java
Modified:
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObject.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectAttribute.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredential.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredentialType.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationship.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipName.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipType.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectType.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateRealm.hbm.xml
idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java
idm/trunk/idm-testsuite/src/test/resources/datasources/datasources.xml
idm/trunk/idm-testsuite/src/test/resources/datasources/hibernates.xml
Log:
- some more schema work
Modified: idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
===================================================================
--- idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-11-12 23:28:01 UTC (rev 933)
@@ -68,11 +68,7 @@
import javax.naming.InitialContext;
import javax.naming.NamingException;
-import org.hibernate.Criteria;
-import org.hibernate.HibernateException;
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
+import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Restrictions;
@@ -721,6 +717,7 @@
results = (List<IdentityObject>)q.list();
+ Hibernate.initialize(results);
}
catch (Exception e)
@@ -858,7 +855,8 @@
- results = q.list();
+ results = q.list();
+ Hibernate.initialize(results);
}
@@ -961,8 +959,6 @@
HibernateIdentityObject toIO = safeGet(ctx, toIdentity);
HibernateIdentityObjectRelationshipType type = getHibernateIdentityObjectRelationshipType(ctx, relationshipType);
- //getSupportedFeatures().isRelationshipTypeSupported(fromIO.getIdentityType(), toIO.getIdentityType(), relationshipType);
-
org.hibernate.Query query = null;
if (name == null)
@@ -994,17 +990,14 @@
}
- List results = query.list();
+ HibernateIdentityObjectRelationship relationship = (HibernateIdentityObjectRelationship)query.uniqueResult();
- if (results == null)
+ if (relationship == null)
{
throw new IdentityException("Relationship not present in the store");
}
- HibernateIdentityObjectRelationship relationship = (HibernateIdentityObjectRelationship)results.iterator().next();
-
-
- try
+ try
{
fromIO.getFromRelationships().remove(relationship);
toIO.getToRelationships().remove(relationship);
@@ -1029,6 +1022,7 @@
.setParameter("IO2", hio2);
List results = query.list();
+ Hibernate.initialize(results);
for (Iterator iterator = results.iterator(); iterator.hasNext();)
{
@@ -1079,6 +1073,7 @@
List<HibernateIdentityObjectRelationship> results = query.list();
+ Hibernate.initialize(results);
return new HashSet<IdentityObjectRelationship>(results);
}
@@ -1127,6 +1122,8 @@
List<HibernateIdentityObjectRelationship> results = criteria.list();
+ Hibernate.initialize(results);
+
return new HashSet<IdentityObjectRelationship>(results);
}
@@ -1179,8 +1176,11 @@
try
{
- HibernateIdentityObjectRelationshipName hiorn = (HibernateIdentityObjectRelationshipName)hibernateSession.createQuery(HibernateIdentityObjectRelationshipName.findIdentityObjectRelationshipNameByName)
- .setParameter("name", name).setParameter("realmName", getRealmName(ctx)).uniqueResult();
+ HibernateIdentityObjectRelationshipName hiorn = (HibernateIdentityObjectRelationshipName)hibernateSession
+ .createQuery(HibernateIdentityObjectRelationshipName.findIdentityObjectRelationshipNameByName)
+ .setParameter("name", name)
+ .setParameter("realmName", getRealmName(ctx))
+ .uniqueResult();
if (hiorn == null)
{
@@ -1191,6 +1191,8 @@
createCriteria(HibernateIdentityObjectRelationship.class)
.add(Restrictions.eq("name", hiorn)).setCacheable(true).list();
+ Hibernate.initialize(rels);
+
//Remove all present usages
for (HibernateIdentityObjectRelationship rel : rels)
{
@@ -1260,6 +1262,8 @@
List<String> results = (List<String>)q.list();
+ Hibernate.initialize(results);
+
names = new HashSet<String>(results);
}
@@ -1318,6 +1322,8 @@
List<String> results = (List<String>)q.list();
+ Hibernate.initialize(results);
+
names = new HashSet<String>(results);
}
@@ -1354,6 +1360,8 @@
throw new IdentityException("Relationship name doesn't exist");
}
+ Hibernate.initialize(hiorn.getProperties());
+
return new HashMap<String, String>(hiorn.getProperties());
}
@@ -1412,6 +1420,9 @@
throw new IdentityException("Relationship name doesn't exist");
}
+ Hibernate.initialize(hiorn.getProperties());
+
+
for (String property : properties)
{
hiorn.getProperties().remove(property);
@@ -1464,6 +1475,8 @@
{
HibernateIdentityObjectRelationship hibernateRelationship = (HibernateIdentityObjectRelationship)query.uniqueResult();
+ Hibernate.initialize(hibernateRelationship.getProperties());
+
return new HashMap<String, String>(hibernateRelationship.getProperties());
}
catch (HibernateException e)
@@ -1564,6 +1577,8 @@
{
HibernateIdentityObjectRelationship hibernateRelationship = (HibernateIdentityObjectRelationship)query.uniqueResult();
+ Hibernate.initialize(hibernateRelationship.getProperties());
+
for (String property : properties)
{
hibernateRelationship.getProperties().remove(property);
@@ -1597,6 +1612,8 @@
Set<HibernateIdentityObjectAttribute> storeAttributes = hibernateObject.getAttributes();
+ Hibernate.initialize(storeAttributes);
+
// Remap the names
for (HibernateIdentityObjectAttribute attribute : storeAttributes)
{
@@ -1626,6 +1643,7 @@
Set<HibernateIdentityObjectAttribute> storeAttributes = hibernateObject.getAttributes();
+ Hibernate.initialize(storeAttributes);
// Remap the names
@@ -1734,6 +1752,8 @@
HibernateIdentityObject hibernateObject = safeGet(ctx, identity);
+ Hibernate.initialize(hibernateObject.getAttributes());
+
for (String name : mappedAttributes.keySet())
{
IdentityObjectAttribute attribute = mappedAttributes.get(name);
@@ -1896,6 +1916,8 @@
HibernateIdentityObject hibernateObject = safeGet(ctx, identity);
+ Hibernate.initialize(hibernateObject.getAttributes());
+
for (String name : mappedAttributes.keySet())
{
IdentityObjectAttribute attribute = mappedAttributes.get(name);
@@ -2023,6 +2045,8 @@
HibernateIdentityObject hibernateObject = safeGet(ctx, identity);
+ Hibernate.initialize(hibernateObject.getAttributes());
+
for (String attr : mappedAttributes)
{
hibernateObject.removeAttribute(attr);
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObject.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObject.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObject.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -13,7 +13,9 @@
</id>
<set name="attributes"
inverse="true"
- cascade="all, delete-orphan">
+ cascade="all, delete-orphan"
+ lazy="true"
+ fetch="select">
<cache usage="read-write"/>
<key>
<column name="IDENTITY_OBJECT_ID" />
@@ -22,7 +24,9 @@
</set>
<set name="credentials"
inverse="true"
- cascade="all, delete-orphan">
+ cascade="all, delete-orphan"
+ lazy="true"
+ fetch="select">
<cache usage="read-write"/>
<key>
<column name="IDENTITY_OBJECT_ID" />
@@ -30,7 +34,9 @@
<one-to-many class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectCredential" />
</set>
<set name="fromRelationships"
- inverse="true">
+ inverse="true"
+ lazy="true"
+ fetch="select">
<cache usage="read-write"/>
<key>
<column name="FROM_IDENTITY" />
@@ -48,14 +54,17 @@
</many-to-one>
<property name="name"
type="java.lang.String"
- access="field">
+ access="field"
+ lazy="false">
<column name="NAME"
not-null="true"
unique-key="id"/>
</property>
<map name="properties"
table="jbid_io_props"
- cascade="all, delete-orphan">
+ cascade="all, delete-orphan"
+ lazy="true"
+ fetch="select">
<cache usage="read-write"/>
<key column="PROP_ID"/>
<map-key type="string"
@@ -67,13 +76,15 @@
<many-to-one name="realm"
class="org.jboss.identity.idm.impl.model.hibernate.HibernateRealm"
access="field"
- fetch="join">
+ fetch="select">
<column name="REALM"
not-null="true"
unique-key="id"/>
</many-to-one>
<set name="toRelationships"
- inverse="true">
+ inverse="true"
+ lazy="true"
+ fetch="select">
<cache usage="read-write"/>
<key>
<column name="TO_IDENTITY" />
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectAttribute.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectAttribute.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectAttribute.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -35,7 +35,8 @@
table="jbid_io_attr_text_values"
cascade="all, delete-orphan"
access="field"
- lazy="false">
+ lazy="false"
+ fetch="join">
<cache usage="read-write"/>
<key column="TEXT_ATTR_VALUE_ID"/>
<element type="string"
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredential.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredential.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredential.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -23,7 +23,7 @@
<many-to-one name="identityObject"
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject"
access="field"
- fetch="join"
+ fetch="select"
lazy="false">
<column name="IDENTITY_OBJECT_ID"
not-null="true"
@@ -31,7 +31,9 @@
</many-to-one>
<map name="properties"
table="jbid_io_creden_props"
- cascade="all, delete-orphan">
+ cascade="all, delete-orphan"
+ lazy="true"
+ fetch="select">
<cache usage="read-write"/>
<key column="PROP_ID"/>
<map-key type="string"
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredentialType.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredentialType.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredentialType.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -14,7 +14,8 @@
</id>
<property name="name"
type="java.lang.String"
- access="field">
+ access="field"
+ lazy="false">
<column name="NAME"
unique="true" />
</property>
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationship.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationship.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationship.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -14,7 +14,7 @@
<many-to-one name="fromIdentityObject"
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject"
access="field"
- fetch="join"
+ fetch="select"
lazy="false">
<column name="FROM_IDENTITY"
not-null="true"
@@ -31,7 +31,7 @@
<many-to-one name="toIdentityObject"
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject"
access="field"
- fetch="join"
+ fetch="select"
lazy="false">
<column name="TO_IDENTITY"
not-null="true"
@@ -40,7 +40,7 @@
<many-to-one name="type"
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationshipType"
access="field"
- fetch="join"
+ fetch="select"
lazy="false">
<column name="REL_TYPE"
not-null="true"
@@ -48,7 +48,9 @@
</many-to-one>
<map name="properties"
table="jbid_io_rel_props"
- cascade="all, delete-orphan">
+ cascade="all, delete-orphan"
+ fetch="select"
+ lazy="true">
<cache usage="read-write"/>
<key column="PROP_ID"/>
<map-key type="string"
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipName.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipName.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipName.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -14,7 +14,8 @@
</id>
<property name="name"
type="java.lang.String"
- access="field">
+ access="field"
+ lazy="false">
<column name="NAME"
not-null="true"
unique="true"
@@ -22,7 +23,9 @@
</property>
<map name="properties"
table="jbid_io_rel_name_props"
- cascade="all, delete-orphan">
+ cascade="all, delete-orphan"
+ lazy="true"
+ fetch="select">
<cache usage="read-write"/>
<key column="PROP_ID"/>
<map-key type="string"
@@ -39,6 +42,6 @@
not-null="true"
unique-key="id"/>
</many-to-one>
-
+
</class>
</hibernate-mapping>
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipType.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipType.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipType.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -13,7 +13,8 @@
</id>
<property name="name"
type="java.lang.String"
- access="field">
+ access="field"
+ lazy="false">
<column name="NAME"
not-null="true"
unique="true" />
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectType.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectType.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectType.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -5,7 +5,6 @@
<class name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectType"
table="jbid_io_type">
<cache usage="read-write"/>
-
<id name="id"
type="java.lang.Long"
access="field">
@@ -14,7 +13,8 @@
</id>
<property name="name"
type="java.lang.String"
- access="field">
+ access="field"
+ lazy="false">
<column name="NAME"
not-null="true"
unique="true" />
Modified: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateRealm.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateRealm.hbm.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateRealm.hbm.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -13,14 +13,17 @@
</id>
<property name="name"
type="java.lang.String"
- access="field">
+ access="field"
+ lazy="false">
<column name="NAME"
not-null="true"
unique-key="id"/>
</property>
<map name="properties"
table="jbid_real_props"
- cascade="all, delete-orphan">
+ cascade="all, delete-orphan"
+ fetch="select"
+ lazy="true">
<cache usage="read-write"/>
<key column="PROP_ID"/>
<map-key type="string"
Modified: idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java
===================================================================
--- idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java 2009-11-12 23:28:01 UTC (rev 933)
@@ -308,6 +308,8 @@
new SimpleAttribute("picture", new byte[][]{picture}),
};
+ assertNull(session.getAttributesManager().findUserByUniqueAttribute("picture", picture));
+
session.getAttributesManager().addAttributes(bdawidowUser, userInfo);
attributes = session.getAttributesManager().getAttributes(bdawidowUser);
Added: idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/store/hibernate/EvilBinaryTestCase.java
===================================================================
--- idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/store/hibernate/EvilBinaryTestCase.java (rev 0)
+++ idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/store/hibernate/EvilBinaryTestCase.java 2009-11-12 23:28:01 UTC (rev 933)
@@ -0,0 +1,137 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.identity.idm.impl.store.hibernate;
+
+import org.jboss.identity.idm.impl.model.hibernate.*;
+import org.jboss.identity.idm.impl.IdentityTestPOJO;
+import org.jboss.identity.idm.impl.api.PasswordCredential;
+import org.jboss.unit.api.pojo.annotations.Destroy;
+import org.jboss.unit.api.pojo.annotations.Create;
+import org.jboss.unit.api.pojo.annotations.Test;
+import org.hibernate.Session;
+import org.hibernate.Query;
+
+import java.util.*;
+
+
+/**
+ * Simple test to show binary/blob issues in database
+ *
+ * @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw Dawidowicz</a>
+ * @version : 0.1 $
+ */
+public class EvilBinaryTestCase extends IdentityTestPOJO
+{
+ public EvilBinaryTestCase()
+ {
+ }
+
+
+ @Create
+ public void setUp() throws Exception
+ {
+ super.start();
+ }
+
+ @Destroy
+ public void tearDown() throws Exception
+ {
+ super.stop();
+ }
+
+ @Test
+ public void testBinary() throws Exception
+ {
+ begin();
+
+ Session session = getSessionFactory().getCurrentSession();
+
+
+ HibernateRealm realm = new HibernateRealm("default");
+ session.persist(realm);
+
+ HibernateIdentityObjectType userType = new HibernateIdentityObjectType("User");
+ session.persist(userType);
+ HibernateIdentityObject user1 = new HibernateIdentityObject("user1", userType, realm);
+ session.persist(user1);
+
+ Set<String> values1 = new HashSet<String>();
+ values1.add("Val1");
+ values1.add("Val2");
+ values1.add("Val3");
+
+ HibernateIdentityObjectAttribute attr = new HibernateIdentityObjectAttribute(user1, "simple1", HibernateIdentityObjectAttribute.TYPE_TEXT);
+ attr.setTextValues(values1);
+ user1.getAttributes().add(attr);
+
+ commit();
+
+ begin();
+
+ session = getSessionFactory().getCurrentSession();
+
+ user1 = (HibernateIdentityObject)session.get(HibernateIdentityObject.class, new Long(user1.getId()));
+
+ Random random = new Random();
+
+ // Small
+ byte[] picture = new byte[4];
+ random.nextBytes(picture);
+
+ attr = new HibernateIdentityObjectAttribute(user1, "simple2", HibernateIdentityObjectAttribute.TYPE_BINARY);
+ attr.setBinaryValue(picture);
+ user1.addAttribute(attr);
+
+ commit();
+
+ begin();
+
+ session = getSessionFactory().getCurrentSession();
+
+ user1 = (HibernateIdentityObject)session.get(HibernateIdentityObject.class, new Long(user1.getId()));
+
+ // 900 kilobytes
+ picture = new byte[921600];
+// picture = new byte[2];
+ random.nextBytes(picture);
+
+
+ attr = new HibernateIdentityObjectAttribute(user1, "simple3", HibernateIdentityObjectAttribute.TYPE_BINARY);
+ attr.setBinaryValue(picture);
+ user1.getAttributes().add(attr);
+
+ commit();
+
+ begin();
+
+ session = getSessionFactory().getCurrentSession();
+
+ user1 = (HibernateIdentityObject)session.get(HibernateIdentityObject.class, new Long(user1.getId()));
+
+ assertEquals(3, user1.getAttributes().size());
+
+ commit();
+
+ }
+
+}
\ No newline at end of file
Modified: idm/trunk/idm-testsuite/src/test/resources/datasources/datasources.xml
===================================================================
--- idm/trunk/idm-testsuite/src/test/resources/datasources/datasources.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-testsuite/src/test/resources/datasources/datasources.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -38,6 +38,14 @@
<password>jbidentity</password>
</datasource>
+ <datasource>
+ <datasource-name>sybase152-jconnect</datasource-name>
+ <connection-url>jdbc:sybase:Tds:dev77.qa.atl2.redhat.com:4100/jbidentity</connection-url>
+ <driver-class>com.sybase.jdbc3.jdbc.SybDriver</driver-class>
+ <user-name>jbidentity</user-name>
+ <password>jbidentity</password>
+ </datasource>
+
<datasource>
<datasource-name>db291</datasource-name>
<connection-url>jdbc:db2://dev67.qa.atl.jboss.com:50000/jbossqa</connection-url>
@@ -102,6 +110,13 @@
<user-name>identity</user-name>
<password>identity</password>
</datasource>
+ <datasource>
+ <datasource-name>sqlserver2</datasource-name>
+ <connection-url>jdbc:sqlserver://dev30.qa.atl.jboss.com:3918;databaseName=identity</connection-url>
+ <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
+ <user-name>identity</user-name>
+ <password>identity</password>
+ </datasource>
<datasource>
<datasource-name>oracle9i</datasource-name>
Modified: idm/trunk/idm-testsuite/src/test/resources/datasources/hibernates.xml
===================================================================
--- idm/trunk/idm-testsuite/src/test/resources/datasources/hibernates.xml 2009-11-12 19:15:59 UTC (rev 932)
+++ idm/trunk/idm-testsuite/src/test/resources/datasources/hibernates.xml 2009-11-12 23:28:01 UTC (rev 933)
@@ -138,6 +138,15 @@
</property>
</properties>
</configuration>
+ <configuration>
+ <configuration-name>sqlserver2</configuration-name>
+ <properties>
+ <property>
+ <name>hibernate.dialect</name>
+ <value>org.hibernate.dialect.SQLServerDialect</value>
+ </property>
+ </properties>
+ </configuration>
<!-- The mysql 4 configuration -->
<configuration>
<configuration-name>mysql4</configuration-name>
@@ -205,6 +214,15 @@
</properties>
</configuration>
<configuration>
+ <configuration-name>sybase152-jconnect</configuration-name>
+ <properties>
+ <property>
+ <name>hibernate.dialect</name>
+ <value>org.hibernate.dialect.SybaseDialect</value>
+ </property>
+ </properties>
+ </configuration>
+ <configuration>
<configuration-name>db291</configuration-name>
<properties>
<property>
16 years, 6 months