You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ow...@apache.org on 2014/01/22 22:47:03 UTC
svn commit: r1560525 [3/4] - in /cxf/fediz/trunk: ./ services/idp/
services/idp/src/main/java/org/apache/cxf/fediz/service/idp/
services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/
services/idp/src/main/java/org/apache/cxf/fediz/service/i...
Added: cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java?rev=1560525&view=auto
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java (added)
+++ cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java Wed Jan 22 21:47:02 2014
@@ -0,0 +1,197 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.fediz.service.idp.service.jpa;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.ws.security.WSConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+//CHECKSTYLE:OFF
+public class DBLoaderImpl implements DBLoader {
+
+ public static final String NAME = "DEMODBLOADER";
+
+ private static final Logger LOG = LoggerFactory.getLogger(DBLoaderImpl.class);
+
+ private EntityManager em;
+
+ @PersistenceContext
+ public void setEntityManager(EntityManager entityManager) {
+ this.em = entityManager;
+ }
+
+ @Override
+ public String getName() {
+ return NAME;
+ }
+
+ @Override
+ public void load() {
+
+ try {
+ ClaimEntity claimEntity1 = new ClaimEntity();
+ claimEntity1.setClaimType("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname");
+ claimEntity1.setDisplayName("firstname");
+ claimEntity1.setDescription("Description for firstname");
+ em.persist(claimEntity1);
+
+ ClaimEntity claimEntity2 = new ClaimEntity();
+ claimEntity2.setClaimType("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname");
+ claimEntity2.setDisplayName("lastname");
+ claimEntity2.setDescription("Description for lastname");
+ em.persist(claimEntity2);
+
+ ClaimEntity claimEntity3 = new ClaimEntity();
+ claimEntity3.setClaimType("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress");
+ claimEntity3.setDisplayName("email");
+ claimEntity3.setDescription("Description for email");
+ em.persist(claimEntity3);
+
+ ClaimEntity claimEntity4 = new ClaimEntity();
+ claimEntity4.setClaimType("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role");
+ claimEntity4.setDisplayName("role");
+ claimEntity4.setDescription("Description for role");
+ em.persist(claimEntity4);
+
+
+ ApplicationEntity entity = new ApplicationEntity();
+ entity.setEncryptionCertificate("");
+ entity.setLifeTime("3600");
+ entity.setProtocol("http://docs.oasis-open.org/wsfed/federation/200706");
+ entity.setRealm("urn:org:apache:cxf:fediz:fedizhelloworld");
+ entity.setRole("ApplicationServiceType");
+ entity.setServiceDescription("Fedizhelloworld description");
+ entity.setServiceDisplayName("Fedizhelloworld");
+ entity.setTokenType("http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0");
+ // must be persistet here already as the ApplicationClaimEntity requires the Application Id
+ em.persist(entity);
+ ApplicationClaimEntity ace1 = new ApplicationClaimEntity(entity, claimEntity1);
+ ace1.setOptional(true);
+ em.persist(ace1);
+ entity.getRequestedClaims().add(ace1);
+ ApplicationClaimEntity ace2 = new ApplicationClaimEntity(entity, claimEntity2);
+ ace2.setOptional(true);
+ em.persist(ace2);
+ entity.getRequestedClaims().add(ace2);
+ ApplicationClaimEntity ace3 = new ApplicationClaimEntity(entity, claimEntity3);
+ ace3.setOptional(true);
+ em.persist(ace3);
+ entity.getRequestedClaims().add(ace3);
+ ApplicationClaimEntity ace4 = new ApplicationClaimEntity(entity, claimEntity4);
+ ace4.setOptional(false);
+ em.persist(ace4);
+ entity.getRequestedClaims().add(ace4);
+ em.persist(entity);
+
+
+ TrustedIdpEntity entity3 = new TrustedIdpEntity();
+ entity3.setCacheTokens(true);
+ entity3.setCertificate("trusted cert");
+ entity3.setDescription("Realm B description");
+ entity3.setFederationType("FederateIdentity");
+ entity3.setName("Realm B");
+ entity3.setProtocol("http://docs.oasis-open.org/wsfed/federation/200706");
+ entity3.setRealm("urn:org:apache:cxf:fediz:idp:realm-B");
+ entity3.setTrustType("PEER_TRUST");
+ entity3.setUrl("https://localhost:${realmB.port}/fediz-idp-remote/federation");
+ em.persist(entity3);
+
+ IdpEntity idpEntity = new IdpEntity();
+ idpEntity.getApplications().add(entity);
+ idpEntity.getTrustedIDPs().add(entity3);
+ idpEntity.setCertificate("stsKeystoreA.properties");
+ idpEntity.setCertificatePassword("realma");
+ idpEntity.setIdpUrl("https://localhost:9443/fediz-idp/federation");
+ idpEntity.setRealm("urn:org:apache:cxf:fediz:idp:realm-A");
+ idpEntity.setStsUrl("https://localhost:9443/fediz-idp-sts/REALMA");
+ idpEntity.setServiceDisplayName("REALM A");
+ idpEntity.setServiceDescription("IDP of Realm A");
+ idpEntity.setUri("realma");
+ idpEntity.setProvideIDPList(true);
+ Map<String, String> authUris = new HashMap<String, String>();
+ authUris.put("default", "/login/default");
+ idpEntity.setAuthenticationURIs(authUris);
+ List<String> protocols = new ArrayList<String>();
+ protocols.add("http://docs.oasis-open.org/wsfed/federation/200706");
+ protocols.add("http://docs.oasis-open.org/ws-sx/ws-trust/200512");
+ idpEntity.setSupportedProtocols(protocols);
+ idpEntity.getClaimTypesOffered().add(claimEntity1);
+ idpEntity.getClaimTypesOffered().add(claimEntity2);
+ idpEntity.getClaimTypesOffered().add(claimEntity3);
+ idpEntity.getClaimTypesOffered().add(claimEntity4);
+ List<String> tokenTypes = new ArrayList<String>();
+ tokenTypes.add(WSConstants.SAML2_NS);
+ tokenTypes.add(WSConstants.SAML_NS);
+ idpEntity.setTokenTypesOffered(tokenTypes);
+ idpEntity.setUseCurrentIDP(true);
+ em.persist(idpEntity);
+
+ /*
+ ClaimEntity claimEntity5 = new ClaimEntity();
+ claimEntity5.setClaimType("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/city");
+ claimEntity5.setDisplayName("city");
+ claimEntity5.setDescription("Description for city");
+ em.persist(claimEntity5);
+
+ ApplicationEntity entity2 = new ApplicationEntity();
+ entity2.setEncryptionCertificate("my encryption cert2");
+ entity2.setLifeTime("22my lifetime");
+ entity2.setProtocol("22protocol");
+ entity2.setRealm("myrealm2");
+ entity2.setRole("myrole");
+ entity2.setServiceDescription("service description2");
+ entity2.setServiceDisplayName("service displayname2");
+ entity2.setTokenType("my tokentype");
+ // must be persistet here already as the ApplicationClaimEntity requires the Application Id
+ em.persist(entity2);
+ ApplicationClaimEntity ace5 = new ApplicationClaimEntity(entity2, claimEntity5);
+ ace5.setOptional(false);
+ em.persist(ace5);
+ entity2.getRequestedClaims().add(ace5);
+ em.persist(entity2);
+
+ TrustedIdpEntity entity4 = new TrustedIdpEntity();
+ entity4.setCacheTokens(true);
+ entity4.setCertificate("trusted cert");
+ entity4.setDescription("Realm B description");
+ entity4.setFederationType("FederateIdentity");
+ entity4.setName("Realm B");
+ entity4.setProtocol("http://docs.oasis-open.org/wsfed/federation/200706");
+ entity4.setRealm("trustedidp2realm");
+ entity4.setTrustType("PEER_TRUST");
+ entity4.setUrl("https://localhost:${realmB.port}/fediz-idp-remote/federation");
+ em.persist(entity4);
+ */
+
+ em.flush();
+ } catch (Exception ex) {
+ LOG.warn("Failed to initialize DB with data", ex);
+ }
+ }
+}
Added: cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpDAOJPAImpl.java
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpDAOJPAImpl.java?rev=1560525&view=auto
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpDAOJPAImpl.java (added)
+++ cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpDAOJPAImpl.java Wed Jan 22 21:47:02 2014
@@ -0,0 +1,383 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.fediz.service.idp.service.jpa;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityNotFoundException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import org.apache.cxf.fediz.service.idp.domain.Application;
+import org.apache.cxf.fediz.service.idp.domain.Claim;
+import org.apache.cxf.fediz.service.idp.domain.Idp;
+import org.apache.cxf.fediz.service.idp.domain.TrustedIdp;
+import org.apache.cxf.fediz.service.idp.service.IdpDAO;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+@Component
+@Transactional
+public class IdpDAOJPAImpl implements IdpDAO {
+
+ private static final Logger LOG = LoggerFactory.getLogger(IdpDAOJPAImpl.class);
+
+ private EntityManager em;
+
+ @PersistenceContext
+ public void setEntityManager(EntityManager entityManager) {
+ this.em = entityManager;
+ }
+
+ @Override
+ public List<Idp> getIdps(int start, int size, List<String> expandList) {
+ List<Idp> list = new ArrayList<Idp>();
+
+ Query query = null;
+ query = em.createQuery("select i from IDP i");
+
+ /*List serviceEntities = query.setFirstResult(start)
+ .setMaxResults(size)
+ .getResultList();*/
+
+ //@SuppressWarnings("rawtypes")
+ List idpEntities = query
+ .setFirstResult(start)
+ .setMaxResults(size)
+ .getResultList();
+
+ for (Object obj : idpEntities) {
+ IdpEntity entity = (IdpEntity) obj;
+ list.add(entity2domain(entity, expandList));
+ }
+ return list;
+ }
+
+ @Override
+ public Idp getIdp(String realm, List<String> expandList) {
+ Query query = null;
+ query = em.createQuery("select i from IDP i where i.realm=:realm");
+ query.setParameter("realm", realm);
+
+ //@SuppressWarnings("rawtypes")
+ Object idpObj = query.getSingleResult();
+ return entity2domain((IdpEntity)idpObj, expandList);
+ }
+
+ @Override
+ public Idp addIdp(Idp idp) {
+ IdpEntity entity = new IdpEntity();
+ domain2entity(idp, entity);
+ em.persist(entity);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("IDP '" + idp.getRealm() + "' added");
+ }
+ return entity2domain(entity, Arrays.asList("all"));
+ }
+
+ @Override
+ public void updateIdp(String realm, Idp idp) {
+ Query query = null;
+ query = em.createQuery("select i from IDP i where i.realm=:realm");
+ query.setParameter("realm", realm);
+
+ //@SuppressWarnings("rawtypes")
+ IdpEntity idpEntity = (IdpEntity)query.getSingleResult();
+
+ domain2entity(idp, idpEntity);
+
+ em.persist(idpEntity);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("IDP '" + idp.getRealm() + "' updated");
+ }
+ }
+
+ @Override
+ public void deleteIdp(String realm) {
+ Query query = null;
+ query = em.createQuery("select i from IDP i where i.realm=:realm");
+ query.setParameter("realm", realm);
+
+ //@SuppressWarnings("rawtypes")
+ Object idpObj = query.getSingleResult();
+ em.remove(idpObj);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("IDP '" + realm + "' deleted");
+ }
+
+ }
+
+ @Override
+ public void addApplicationToIdp(Idp idp, Application application) {
+ IdpEntity idpEntity = null;
+ if (idp.getId() != 0) {
+ idpEntity = em.find(IdpEntity.class, idp.getId());
+ } else {
+ idpEntity = getIdpEntity(idp.getRealm(), em);
+ }
+
+ ApplicationEntity applicationEntity = null;
+ if (application.getId() != 0) {
+ applicationEntity = em.find(ApplicationEntity.class, application.getId());
+ } else {
+ applicationEntity = ApplicationDAOJPAImpl.getApplicationEntity(application.getRealm(), em);
+ }
+
+ idpEntity.getApplications().add(applicationEntity);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Application '" + application.getRealm() + "' added to IDP '" + idp.getRealm() + "'");
+ }
+ }
+
+ @Override
+ public void removeApplicationFromIdp(Idp idp, Application application) {
+ IdpEntity idpEntity = null;
+ if (idp.getId() != 0) {
+ idpEntity = em.find(IdpEntity.class, idp.getId());
+ } else {
+ idpEntity = getIdpEntity(idp.getRealm(), em);
+ }
+
+ ApplicationEntity applicationEntity = null;
+ if (application.getId() != 0) {
+ applicationEntity = em.find(ApplicationEntity.class, application.getId());
+ } else {
+ applicationEntity = ApplicationDAOJPAImpl.getApplicationEntity(application.getRealm(), em);
+ }
+
+ if (applicationEntity == null) {
+ throw new EntityNotFoundException("ApplicationEntity not found");
+ }
+
+ if (!idpEntity.getApplications().remove(applicationEntity)) {
+ throw new EntityNotFoundException("ApplicationEntity not assigned to IdpEntity");
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Application '" + application.getRealm() + "' removed from IDP '" + idp.getRealm() + "'");
+ }
+ }
+
+ @Override
+ public void addTrustedIdpToIdp(Idp idp, TrustedIdp trustedIdp) {
+ IdpEntity idpEntity = null;
+ if (idp.getId() != 0) {
+ idpEntity = em.find(IdpEntity.class, idp.getId());
+ } else {
+ idpEntity = getIdpEntity(idp.getRealm(), em);
+ }
+
+ TrustedIdpEntity trustedIdpEntity = null;
+ if (trustedIdp.getId() != 0) {
+ trustedIdpEntity = em.find(TrustedIdpEntity.class, trustedIdp.getId());
+ } else {
+ trustedIdpEntity = TrustedIdpDAOJPAImpl.getTrustedIdpEntity(trustedIdp.getRealm(), em);
+ }
+
+ idpEntity.getTrustedIDPs().add(trustedIdpEntity);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Trusted IDP '" + trustedIdp.getRealm() + "' added to IDP '" + idp.getRealm() + "'");
+ }
+ }
+
+ @Override
+ public void removeTrustedIdpFromIdp(Idp idp, TrustedIdp trustedIdp) {
+ IdpEntity idpEntity = null;
+ if (idp.getId() != 0) {
+ idpEntity = em.find(IdpEntity.class, idp.getId());
+ } else {
+ idpEntity = getIdpEntity(idp.getRealm(), em);
+ }
+
+ TrustedIdpEntity trustedIdpEntity = null;
+ if (trustedIdp.getId() != 0) {
+ trustedIdpEntity = em.find(TrustedIdpEntity.class, trustedIdp.getId());
+ } else {
+ trustedIdpEntity = TrustedIdpDAOJPAImpl.getTrustedIdpEntity(trustedIdp.getRealm(), em);
+ }
+
+ idpEntity.getTrustedIDPs().remove(trustedIdpEntity);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Trusted IDP '" + trustedIdp.getRealm() + "' removed from IDP '" + idp.getRealm() + "'");
+ }
+ }
+
+ @Override
+ public void addClaimToIdp(Idp idp, Claim claim) {
+ IdpEntity idpEntity = null;
+ if (idp.getId() != 0) {
+ idpEntity = em.find(IdpEntity.class, idp.getId());
+ } else {
+ idpEntity = getIdpEntity(idp.getRealm(), em);
+ }
+
+ ClaimEntity claimEntity = null;
+ if (claim.getId() != 0) {
+ claimEntity = em.find(ClaimEntity.class, claim.getId());
+ } else {
+ claimEntity = ClaimDAOJPAImpl.getClaimEntity(claim.getClaimType().toString(), em);
+ }
+
+ idpEntity.getClaimTypesOffered().add(claimEntity);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Claim '" + claim.getClaimType() + "' added to IDP '" + idp.getRealm() + "'");
+ }
+ }
+
+ @Override
+ public void removeClaimFromIdp(Idp idp, Claim claim) {
+ IdpEntity idpEntity = null;
+ if (idp.getId() != 0) {
+ idpEntity = em.find(IdpEntity.class, idp.getId());
+ } else {
+ idpEntity = getIdpEntity(idp.getRealm(), em);
+ }
+ if (idpEntity == null) {
+ throw new EntityNotFoundException("IdpEntity not found");
+ }
+
+ ClaimEntity claimEntity = null;
+ if (claim.getId() != 0) {
+ claimEntity = em.find(ClaimEntity.class, claim.getId());
+ } else {
+ claimEntity = ClaimDAOJPAImpl.getClaimEntity(claim.getClaimType().toString(), em);
+ }
+ if (claimEntity == null) {
+ throw new EntityNotFoundException("ClaimEntity not found");
+ }
+
+ if (!idpEntity.getClaimTypesOffered().remove(claimEntity)) {
+ throw new EntityNotFoundException("ClaimEntity not assigned to IdpEntity");
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Claim '" + claim.getClaimType() + "' removed from IDP '" + idp.getRealm() + "'");
+ }
+ }
+
+ static IdpEntity getIdpEntity(String realm, EntityManager em) {
+ Query query = null;
+ query = em.createQuery("select i from IDP i where i.realm=:realm");
+ query.setParameter("realm", realm);
+
+ //@SuppressWarnings("rawtypes")
+ return (IdpEntity)query.getSingleResult();
+ }
+
+ public static void domain2entity(Idp idp, IdpEntity entity) {
+ //The ID must not be updated if the entity has got an id already (update case)
+ if (idp.getId() > 0) {
+ entity.setId(idp.getId());
+ }
+
+ entity.setCertificate(idp.getCertificate());
+ entity.setCertificatePassword(idp.getCertificatePassword());
+ entity.setRealm(idp.getRealm());
+ entity.setServiceDescription(idp.getServiceDescription());
+ entity.setServiceDisplayName(idp.getServiceDisplayName());
+ entity.setHrds(idp.getHrds());
+ entity.setIdpUrl(idp.getIdpUrl());
+ entity.setProvideIDPList(idp.isProvideIDPList());
+ entity.setStsUrl(idp.getStsUrl());
+ entity.setUri(idp.getUri());
+ entity.setUseCurrentIDP(idp.isUseCurrentIDP());
+
+ entity.getAuthenticationURIs().clear();
+ for (Map.Entry<String, String> item : idp.getAuthenticationURIs().entrySet()) {
+ entity.getAuthenticationURIs().put(item.getKey(), item.getValue());
+ }
+
+ entity.getTokenTypesOffered().clear();
+ for (String item : idp.getTokenTypesOffered()) {
+ entity.getTokenTypesOffered().add(item);
+ }
+
+ entity.getSupportedProtocols().clear();
+ for (String item : idp.getSupportedProtocols()) {
+ entity.getSupportedProtocols().add(item);
+ }
+ }
+
+
+ public static Idp entity2domain(IdpEntity entity, List<String> expandList) {
+ Idp idp = new Idp();
+ idp.setId(entity.getId());
+ idp.setCertificate(entity.getCertificate());
+ idp.setCertificatePassword(entity.getCertificatePassword());
+ idp.setRealm(entity.getRealm());
+ idp.setServiceDescription(entity.getServiceDescription());
+ idp.setServiceDisplayName(entity.getServiceDisplayName());
+ idp.setHrds(entity.getHrds());
+ idp.setIdpUrl(entity.getIdpUrl());
+ idp.setProvideIDPList(entity.isProvideIDPList());
+ idp.setStsUrl(entity.getStsUrl());
+ idp.setUri(entity.getUri());
+ idp.setUseCurrentIDP(entity.isUseCurrentIDP());
+
+
+ if (expandList != null && (expandList.contains("all") || expandList.contains("applications"))) {
+ for (ApplicationEntity item : entity.getApplications()) {
+ Application application = ApplicationDAOJPAImpl.entity2domain(item, expandList);
+ idp.getApplications().add(application);
+ }
+ }
+
+ if (expandList != null && (expandList.contains("all") || expandList.contains("trusted-idps"))) {
+ for (TrustedIdpEntity item : entity.getTrustedIDPs()) {
+ TrustedIdp trustedIdp = TrustedIdpDAOJPAImpl.entity2domain(item);
+ idp.getTrustedIdps().add(trustedIdp);
+ }
+ }
+
+ for (Map.Entry<String, String> item : entity.getAuthenticationURIs().entrySet()) {
+ idp.getAuthenticationURIs().put(item.getKey(), item.getValue());
+ }
+
+ for (String item : entity.getTokenTypesOffered()) {
+ idp.getTokenTypesOffered().add(item);
+ }
+
+ for (String item : entity.getSupportedProtocols()) {
+ idp.getSupportedProtocols().add(item);
+ }
+
+ if (expandList != null && (expandList.contains("all") || expandList.contains("claims"))) {
+ for (ClaimEntity item : entity.getClaimTypesOffered()) {
+ idp.getClaimTypesOffered().add(ClaimDAOJPAImpl.entity2domain(item));
+ }
+ }
+
+ return idp;
+ }
+
+}
Copied: cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpEntity.java (from r1560523, cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/model/IDPConfig.java)
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpEntity.java?p2=cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpEntity.java&p1=cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/model/IDPConfig.java&r1=1560523&r2=1560525&rev=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/model/IDPConfig.java (original)
+++ cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/IdpEntity.java Wed Jan 22 21:47:02 2014
@@ -16,26 +16,30 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.fediz.service.idp.model;
-import java.io.Serializable;
+package org.apache.cxf.fediz.service.idp.service.jpa;
+
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement(name = "IDP", namespace = "http://org.apache.cxf.fediz")
-public class IDPConfig implements Serializable {
+import javax.persistence.CascadeType;
+import javax.persistence.CollectionTable;
+import javax.persistence.Column;
+import javax.persistence.ElementCollection;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToMany;
+import javax.persistence.MapKeyColumn;
- // @Id
- // private Long id;
+@Entity(name = "IDP")
+public class IdpEntity {
- /**
- *
- */
- private static final long serialVersionUID = -5570301342547139039L;
+ @Id
+ private int id;
- // @Column(name = "REALM", nullable = false, length = FIELD_LENGTH)
// Unique
// fed:TargetScope
private String realm; // wtrealm, whr
@@ -48,7 +52,6 @@ public class IDPConfig implements Serial
// Spring EL
private String hrds;
- // @Column(name = "INACTIVE", nullable = true, length = FIELD_LENGTH)
// if HRDS can't determine the home realm, should
// the list of trusted IDPs be shown to make a choice
private boolean provideIDPList;
@@ -68,7 +71,7 @@ public class IDPConfig implements Serial
// fed:SecurityTokenSerivceEndpoint
private String stsUrl;
- // fed:PassiveRequestorEndpoint
+ // fedl:PassiveRequestorEndpoint
// published hostname, port must be configured
private String idpUrl;
@@ -76,28 +79,44 @@ public class IDPConfig implements Serial
// "http://docs.oasis-open.org/wsfed/federation/200706"
// "http://docs.oasis-open.org/ws-sx/ws-trust/200512"
// Could be more in the future
- private List<String> supportedProtocols;
+
+ @ElementCollection
+ @CollectionTable(name = "idp_protocols")
+ @Column(name = "protocol")
+ private List<String> supportedProtocols = new ArrayList<String>();
// list of RPs and RP-IDPs from whom we accept SignInResponse
// which includes RP IDPs
// key: wtrealm
- private Map<String, ServiceConfig> services;
+ @ManyToMany(cascade = CascadeType.ALL)
+ private List<ApplicationEntity> applications = new ArrayList<ApplicationEntity>();
// list of trusted IDP from whom we accept SignInResponse
// key: whr
- private Map<String, TrustedIDPConfig> trustedIDPs;
+ @ManyToMany(cascade = CascadeType.ALL)
+ private List<TrustedIdpEntity> trustedIDPs = new ArrayList<TrustedIdpEntity>();
// which URI to redirect for authentication
// fediz-idp/<IDP uri>/login/auth/<auth URI>
// wauth to auth URI mapping
- private Map<String, String> authenticationURIs;
+ @ElementCollection
+ @MapKeyColumn(name = "name")
+ @Column(name = "value")
+ @CollectionTable(name = "idp_auth_uris", joinColumns = @JoinColumn(name = "idp_id"))
+ private Map<String, String> authenticationURIs = new HashMap<String, String>();
// required to create Federation Metadata document
// fed:TokenTypesOffered
- private List<String> tokenTypesOffered;
+ //[TODO] Tokens could be managed independently, but no real impact in IDP at runtime
+ // Only informational purpose for metadata document, but required in STS
+ @ElementCollection
+ @CollectionTable(name = "idp_tokentypes")
+ @Column(name = "tokentype")
+ private List<String> tokenTypesOffered = new ArrayList<String>();
// fed:ClaimTypesOffered
- private List<String> claimTypesOffered;
+ @ManyToMany(cascade = CascadeType.ALL)
+ private List<ClaimEntity> claimTypesOffered = new ArrayList<ClaimEntity>();
// ServiceDisplayName
private String serviceDisplayName;
@@ -105,6 +124,15 @@ public class IDPConfig implements Serial
// ServiceDescription
private String serviceDescription;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
public String getRealm() {
return realm;
}
@@ -185,19 +213,19 @@ public class IDPConfig implements Serial
this.supportedProtocols = supportedProtocols;
}
- public Map<String, ServiceConfig> getServices() {
- return services;
+ public List<ApplicationEntity> getApplications() {
+ return applications;
}
- public void setServices(Map<String, ServiceConfig> services) {
- this.services = services;
+ public void setApplications(List<ApplicationEntity> applications) {
+ this.applications = applications;
}
- public Map<String, TrustedIDPConfig> getTrustedIDPs() {
+ public List<TrustedIdpEntity> getTrustedIDPs() {
return trustedIDPs;
}
- public void setTrustedIDPs(Map<String, TrustedIDPConfig> trustedIDPs) {
+ public void setTrustedIDPs(List<TrustedIdpEntity> trustedIDPs) {
this.trustedIDPs = trustedIDPs;
}
@@ -217,11 +245,11 @@ public class IDPConfig implements Serial
this.tokenTypesOffered = tokenTypesOffered;
}
- public List<String> getClaimTypesOffered() {
+ public List<ClaimEntity> getClaimTypesOffered() {
return claimTypesOffered;
}
- public void setClaimTypesOffered(List<String> claimTypesOffered) {
+ public void setClaimTypesOffered(List<ClaimEntity> claimTypesOffered) {
this.claimTypesOffered = claimTypesOffered;
}
Added: cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpDAOJPAImpl.java
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpDAOJPAImpl.java?rev=1560525&view=auto
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpDAOJPAImpl.java (added)
+++ cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpDAOJPAImpl.java Wed Jan 22 21:47:02 2014
@@ -0,0 +1,151 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.fediz.service.idp.service.jpa;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import org.apache.cxf.fediz.service.idp.domain.TrustedIdp;
+import org.apache.cxf.fediz.service.idp.service.TrustedIdpDAO;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+
+@Transactional
+@Component
+public class TrustedIdpDAOJPAImpl implements TrustedIdpDAO {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TrustedIdpDAOJPAImpl.class);
+
+ private EntityManager em;
+
+ @PersistenceContext
+ public void setEntityManager(EntityManager entityManager) {
+ this.em = entityManager;
+ }
+
+ @Override
+ public List<TrustedIdp> getTrustedIDPs(int start, int size) {
+ List<TrustedIdp> list = new ArrayList<TrustedIdp>();
+
+ Query query = null;
+ query = em.createQuery("select t from TrustedIDP t");
+
+ //@SuppressWarnings("rawtypes")
+ List idpEntities = query
+ .setFirstResult(start)
+ .setMaxResults(size)
+ .getResultList();
+
+ for (Object obj : idpEntities) {
+ TrustedIdpEntity entity = (TrustedIdpEntity) obj;
+ list.add(entity2domain(entity));
+ }
+
+ return list;
+ }
+
+ @Override
+ public TrustedIdp getTrustedIDP(String realm) {
+ return entity2domain(getTrustedIdpEntity(realm, em));
+ }
+
+ @Override
+ public TrustedIdp addTrustedIDP(TrustedIdp trustedIdp) {
+ TrustedIdpEntity entity = new TrustedIdpEntity();
+ domain2entity(trustedIdp, entity);
+ em.persist(entity);
+
+ LOG.debug("Trusted IDP '" + trustedIdp.getRealm() + "' added");
+ return entity2domain(entity);
+ }
+
+ @Override
+ public void updateTrustedIDP(String realm, TrustedIdp trustedIdp) {
+ TrustedIdpEntity trustedIdpEntity = getTrustedIdpEntity(realm, em);
+
+ domain2entity(trustedIdp, trustedIdpEntity);
+ em.persist(trustedIdpEntity);
+
+ LOG.debug("Trusted IDP '" + trustedIdp.getRealm() + "' updated");
+ }
+
+ @Override
+ public void deleteTrustedIDP(String realm) {
+ Query query = null;
+ query = em.createQuery("select t from TrustedIDP t where t.realm=:realm");
+ query.setParameter("realm", realm);
+
+ //@SuppressWarnings("rawtypes")
+ Object trustedIdpObj = query.getSingleResult();
+ em.remove(trustedIdpObj);
+
+ LOG.debug("Trusted IDP '" + realm + "' deleted");
+ }
+
+ static TrustedIdpEntity getTrustedIdpEntity(String realm, EntityManager em) {
+ Query query = null;
+ query = em.createQuery("select t from TrustedIDP t where t.realm=:realm");
+ query.setParameter("realm", realm);
+
+ //@SuppressWarnings("rawtypes")
+ return (TrustedIdpEntity)query.getSingleResult();
+ }
+
+ public static void domain2entity(TrustedIdp trustedIDP, TrustedIdpEntity entity) {
+ //The ID must not be updated if the entity has got an id already (update case)
+ if (trustedIDP.getId() > 0) {
+ entity.setId(trustedIDP.getId());
+ }
+ entity.setCacheTokens(trustedIDP.isCacheTokens());
+ entity.setCertificate(trustedIDP.getCertificate());
+ entity.setDescription(trustedIDP.getDescription());
+ entity.setFederationType(trustedIDP.getFederationType());
+ entity.setLogo(trustedIDP.getLogo());
+ entity.setName(trustedIDP.getName());
+ entity.setProtocol(trustedIDP.getProtocol());
+ entity.setRealm(trustedIDP.getRealm());
+ entity.setTrustType(trustedIDP.getTrustType());
+ entity.setUrl(trustedIDP.getUrl());
+ }
+
+ public static TrustedIdp entity2domain(TrustedIdpEntity entity) {
+ TrustedIdp trustedIDP = new TrustedIdp();
+ trustedIDP.setId(entity.getId());
+ trustedIDP.setCacheTokens(entity.isCacheTokens());
+ trustedIDP.setCertificate(entity.getCertificate());
+ trustedIDP.setDescription(entity.getDescription());
+ trustedIDP.setFederationType(entity.getFederationType());
+ trustedIDP.setLogo(entity.getLogo());
+ trustedIDP.setName(entity.getName());
+ trustedIDP.setProtocol(entity.getProtocol());
+ trustedIDP.setRealm(entity.getRealm());
+ trustedIDP.setTrustType(entity.getTrustType());
+ trustedIDP.setUrl(entity.getUrl());
+ return trustedIDP;
+ }
+
+}
Copied: cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpEntity.java (from r1560523, cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/model/TrustedIDPConfig.java)
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpEntity.java?p2=cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpEntity.java&p1=cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/model/TrustedIDPConfig.java&r1=1560523&r2=1560525&rev=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/model/TrustedIDPConfig.java (original)
+++ cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/TrustedIdpEntity.java Wed Jan 22 21:47:02 2014
@@ -16,26 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.cxf.fediz.service.idp.model;
+package org.apache.cxf.fediz.service.idp.service.jpa;
-import java.io.Serializable;
+import javax.persistence.Entity;
+import javax.persistence.Id;
-import javax.xml.bind.annotation.XmlRootElement;
+@Entity(name = "TrustedIDP")
+public class TrustedIdpEntity {
-//import javax.persistence.Column;
-//import javax.persistence.Entity;
-//import javax.persistence.Id;
-//import javax.persistence.Table;
-
-//@Entity
-//@Table(name = "TRUSTEDIDP")
-@XmlRootElement(name = "TrustedIDP", namespace = "http://org.apache.cxf.fediz")
-public class TrustedIDPConfig implements Serializable {
-
-
- //@Id
- //private Long id;
+ @Id
+ private int id;
//@Column(name = "REALM", nullable = true, length = FIELD_LENGTH)
private String realm; //wtrealm, whr
@@ -70,6 +61,15 @@ public class TrustedIDPConfig implements
//optional (to provide a list of IDPs)
private String logo;
+
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
public String getRealm() {
return realm;
@@ -150,6 +150,5 @@ public class TrustedIDPConfig implements
public void setTrustType(String trustType) {
this.trustType = trustType;
}
-
}
Modified: cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/util/MetadataWriter.java
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/util/MetadataWriter.java?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/util/MetadataWriter.java (original)
+++ cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/util/MetadataWriter.java Wed Jan 22 21:47:02 2014
@@ -36,7 +36,8 @@ import org.w3c.dom.Document;
import org.apache.cxf.fediz.core.util.CertsUtils;
import org.apache.cxf.fediz.core.util.DOMUtils;
import org.apache.cxf.fediz.core.util.SignatureUtils;
-import org.apache.cxf.fediz.service.idp.model.IDPConfig;
+import org.apache.cxf.fediz.service.idp.domain.Claim;
+import org.apache.cxf.fediz.service.idp.domain.Idp;
import org.apache.ws.security.components.crypto.Crypto;
import org.apache.ws.security.util.Base64;
@@ -62,7 +63,7 @@ public class MetadataWriter {
}
//CHECKSTYLE:OFF
- public Document getMetaData(IDPConfig config) throws RuntimeException {
+ public Document getMetaData(Idp config) throws RuntimeException {
//Return as text/xml
try {
@@ -145,10 +146,10 @@ public class MetadataWriter {
// create ClaimsType section
if (config.getClaimTypesOffered() != null && config.getClaimTypesOffered().size() > 0) {
writer.writeStartElement("fed", "ClaimTypesOffered", WS_FEDERATION_NS);
- for (String claim : config.getClaimTypesOffered()) {
+ for (Claim claim : config.getClaimTypesOffered()) {
writer.writeStartElement("auth", "ClaimType", WS_FEDERATION_NS);
- writer.writeAttribute("Uri", claim);
+ writer.writeAttribute("Uri", claim.getClaimType().toString());
writer.writeAttribute("Optional", "true");
writer.writeEndElement(); // ClaimType
Added: cxf/fediz/trunk/services/idp/src/main/resources/META-INF/orm.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/resources/META-INF/orm.xml?rev=1560525&view=auto
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/resources/META-INF/orm.xml (added)
+++ cxf/fediz/trunk/services/idp/src/main/resources/META-INF/orm.xml Wed Jan 22 21:47:02 2014
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+-->
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm
+ http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"
+ version="2.0">
+
+ <entity class="org.apache.cxf.fediz.service.idp.service.jpa.ClaimEntity">
+ <table>
+ <unique-constraint>
+ <column-name>claimtype</column-name>
+ </unique-constraint>
+ </table>
+ <attributes>
+ <id name="id">
+ <generated-value generator="SEQ_Claim" strategy="TABLE"/>
+ <table-generator name="SEQ_Claim" pk-column-value="SEQ_Claim" initial-value="100"/>
+ </id>
+ </attributes>
+ </entity>
+
+ <entity class="org.apache.cxf.fediz.service.idp.service.jpa.IdpEntity">
+ <table>
+ <unique-constraint>
+ <column-name>realm</column-name>
+ </unique-constraint>
+ </table>
+ <attributes>
+ <id name="id">
+ <generated-value generator="SEQ_IDP" strategy="TABLE"/>
+ <table-generator name="SEQ_IDP" pk-column-value="SEQ_IDP" initial-value="100"/>
+ </id>
+ <many-to-many name="claimTypesOffered">
+ <join-table name="idp_claims">
+ <join-column name="idp_id" />
+ <inverse-join-column name="claim_id"/>
+ <unique-constraint>
+ <column-name>idp_id</column-name>
+ <column-name>claim_id</column-name>
+ </unique-constraint>
+ </join-table>
+ </many-to-many>
+ <many-to-many name="trustedIDPs">
+ <join-table name="idp_trustedidps">
+ <join-column name="idp_id" />
+ <inverse-join-column name="trustedidp_id"/>
+ <unique-constraint>
+ <column-name>idp_id</column-name>
+ <column-name>trustedidp_id</column-name>
+ </unique-constraint>
+ </join-table>
+ </many-to-many>
+ <many-to-many name="applications">
+ <join-table name="idp_applications">
+ <join-column name="idp_id" />
+ <inverse-join-column name="application_id"/>
+ <unique-constraint>
+ <column-name>idp_id</column-name>
+ <column-name>application_id</column-name>
+ </unique-constraint>
+ </join-table>
+ </many-to-many>
+
+ </attributes>
+ </entity>
+
+ <entity class="org.apache.cxf.fediz.service.idp.service.jpa.ApplicationEntity">
+ <table>
+ <unique-constraint>
+ <column-name>realm</column-name>
+ </unique-constraint>
+ </table>
+ <attributes>
+ <id name="id">
+ <generated-value generator="SEQ_Application" strategy="TABLE"/>
+ <table-generator name="SEQ_Application" pk-column-value="SEQ_Application" initial-value="100"/>
+ </id>
+ </attributes>
+ </entity>
+
+ <entity class="org.apache.cxf.fediz.service.idp.service.jpa.TrustedIdpEntity">
+ <table>
+ <unique-constraint>
+ <column-name>realm</column-name>
+ </unique-constraint>
+ </table>
+ <attributes>
+ <id name="id">
+ <generated-value generator="SEQ_TrustedIDP" strategy="TABLE"/>
+ <table-generator name="SEQ_TrustedIDP" pk-column-value="SEQ_TrustedIDP" initial-value="100"/>
+ </id>
+ </attributes>
+ </entity>
+
+ <entity class="org.apache.cxf.fediz.service.idp.service.jpa.ApplicationClaimEntity">
+ <table>
+ <unique-constraint>
+ <column-name>claimid</column-name>
+ <column-name>applicationid</column-name>
+ </unique-constraint>
+ </table>
+ <attributes>
+ <id name="id">
+ <generated-value generator="SEQ_ApplicationClaim" strategy="TABLE"/>
+ <table-generator name="SEQ_ApplicationClaim" pk-column-value="SEQ_ApplicationClaim" initial-value="100"/>
+ </id>
+ </attributes>
+ </entity>
+</entity-mappings>
Added: cxf/fediz/trunk/services/idp/src/main/resources/META-INF/spring-persistence.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/resources/META-INF/spring-persistence.xml?rev=1560525&view=auto
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/resources/META-INF/spring-persistence.xml (added)
+++ cxf/fediz/trunk/services/idp/src/main/resources/META-INF/spring-persistence.xml Wed Jan 22 21:47:02 2014
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
+ http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+ version="2.0">
+ <persistence-unit name="fedizPersistenceUnit">
+ <mapping-file>META-INF/orm.xml</mapping-file>
+ <validation-mode>NONE</validation-mode>
+ </persistence-unit>
+</persistence>
\ No newline at end of file
Modified: cxf/fediz/trunk/services/idp/src/main/resources/log4j.properties
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/resources/log4j.properties?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/resources/log4j.properties (original)
+++ cxf/fediz/trunk/services/idp/src/main/resources/log4j.properties Wed Jan 22 21:47:02 2014
@@ -1,6 +1,7 @@
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=FATAL, CONSOLE
log4j.rootCategory=INFO, CONSOLE, LOGFILE
+log4j.logger.org.springframework.webflow=INFO,LOGFILE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
Added: cxf/fediz/trunk/services/idp/src/main/resources/persistence.properties
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/resources/persistence.properties?rev=1560525&view=auto
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/resources/persistence.properties (added)
+++ cxf/fediz/trunk/services/idp/src/main/resources/persistence.properties Wed Jan 22 21:47:02 2014
@@ -0,0 +1,14 @@
+#jpa.driverClassName=org.apache.derby.jdbc.ClientDriver
+#jpa.url=jdbc:derby://localhost:1527/Fediz
+#jpa.username=admin
+#jpa.password=admin
+#jpa.defaultData=true
+#jpa.platform=DerbyDictionary
+
+
+jpa.driverClassName=org.hsqldb.jdbcDriver
+jpa.url=jdbc:hsqldb:target/fediz/db/myDB;shutdown=true
+jpa.username=sa
+jpa.password=
+jpa.defaultData=true
+jpa.platform=HSQLDictionary
\ No newline at end of file
Added: cxf/fediz/trunk/services/idp/src/main/resources/persistenceContext.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/resources/persistenceContext.xml?rev=1560525&view=auto
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/resources/persistenceContext.xml (added)
+++ cxf/fediz/trunk/services/idp/src/main/resources/persistenceContext.xml Wed Jan 22 21:47:02 2014
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<beans profile="jpa" xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context-3.0.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd
+ http://www.springframework.org/schema/jdbc
+ http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd"
+ default-autowire="byName">
+
+ <!--
+ <jdbc:initialize-database data-source="dataSource" enabled="${jpa.defaultData}" >
+ <jdbc:script location="classpath:default.sql"/>
+ </jdbc:initialize-database>
+ -->
+ <context:component-scan base-package="org.apache.cxf.fediz.service.idp.service"/>
+ <context:component-scan base-package="org.apache.cxf.fediz.service.idp.rest"/>
+
+ <bean id="entityManagerFactory"
+ class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
+ <property name="persistenceXmlLocation" value="classpath*:META-INF/spring-persistence.xml"/>
+ <property name="persistenceUnitName" value="fedizPersistenceUnit"/>
+ <property name="dataSource" ref="dataSource"/>
+ <property name="jpaVendorAdapter">
+ <bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter">
+ <property name="showSql" value="true"/>
+ <property name="generateDdl" value="true"/>
+ <property name="databasePlatform" value="org.apache.openjpa.jdbc.sql.${jpa.platform}"/>
+ </bean>
+ </property>
+ </bean>
+
+ <!--
+ <bean id="entityManagerFactory"
+ class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
+ <property name="persistenceXmlLocation" value="classpath*:META-INF/spring-persistence.xml"/>
+ <property name="persistenceUnitName" value="syncopePersistenceUnit"/>
+ <property name="dataSource" ref="dataSource"/>
+ <property name="jpaVendorAdapter">
+ <bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter">
+ <property name="showSql" value="false"/>
+ <property name="generateDdl" value="true"/>
+ <property name="databasePlatform" value="${jpa.dialect}"/>
+ </bean>
+ </property>
+ <property name="jpaPropertyMap">
+ <map>
+-->
+ <!--<entry key="openjpa.Log" value="SQL=TRACE"/>
+ <entry key="openjpa.ConnectionFactoryProperties"
+ value="PrintParameters=true, PrettyPrint=true, PrettyPrintLineLength=80"/>-->
+ <!--
+ <entry key="openjpa.NontransactionalWrite" value="false"/>
+ <entry key="openjpa.AutoDetach" value="close, commit, nontx-read, rollback"/>
+
+ <entry key="openjpa.jdbc.SchemaFactory" value="native(ForeignKeys=true)"/>
+ <entry key="openjpa.jdbc.MappingDefaults" value="ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict"/>
+
+ <entry key="openjpa.DataCache" value="true"/>
+ <entry key="openjpa.QueryCache" value="true"/>
+ <entry key="openjpa.RemoteCommitProvider" value="sjvm"/>
+ </map>
+ </property>
+ </bean>
+ -->
+
+ <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
+ <property name="jndiName" value="java:comp/env/jdbc/fedizDataSource"/>
+ <property name="defaultObject" ref="localDataSource"/>
+ </bean>
+
+ <bean id="localDataSource"
+ class="org.apache.commons.dbcp.BasicDataSource"
+ destroy-method="close">
+ <property name="driverClassName" value="${jpa.driverClassName}"/>
+ <property name="url" value="${jpa.url}"/>
+ <property name="username" value="${jpa.username}"/>
+ <property name="password" value="${jpa.password}"/>
+ </bean>
+
+ <bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
+ <property name="entityManagerFactory" ref="entityManagerFactory"/>
+ </bean>
+
+ <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
+ <property name="entityManagerFactory" ref="entityManagerFactory"/>
+ </bean>
+
+ <!-- Support annotation Transactional
+ http://docs.spring.io/spring/docs/3.1.4.RELEASE/spring-framework-reference/htmlsingle/#tx-decl-explained
+ -->
+ <tx:annotation-driven/>
+
+ <!-- Support annotation PersistenceContext
+ http://docs.spring.io/spring/docs/3.1.4.RELEASE/spring-framework-reference/htmlsingle/#orm-jpa-straight
+ -->
+ <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
+
+ <bean id="config" class="org.apache.cxf.fediz.service.idp.service.jpa.ConfigServiceJPA" >
+ <property name="idpService" ref="idpServiceImpl" />
+ </bean>
+
+ <bean id="dbLoader" class="org.apache.cxf.fediz.service.idp.service.jpa.DBLoaderImpl" />
+
+
+ <bean id="dbListener" class="org.apache.cxf.fediz.service.idp.service.jpa.DBInitApplicationListener" />
+
+
+</beans>
\ No newline at end of file
Modified: cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/applicationContext.xml?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/applicationContext.xml (original)
+++ cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/applicationContext.xml Wed Jan 22 21:47:02 2014
@@ -28,7 +28,7 @@
http://cxf.apache.org/core
http://cxf.apache.org/schemas/core.xsd
http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://www.springframework.org/schema/util
@@ -42,12 +42,23 @@
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd">
- <context:property-placeholder location="classpath:realm.properties"/>
+ <!-- Use http://www.baeldung.com/2012/02/06/properties-with-spring/ instead -->
+ <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+ <property name="locations">
+ <list>
+ <value>classpath:persistence.properties</value>
+ </list>
+ </property>
+ <property name="ignoreResourceNotFound" value="true"/>
+ <property name="ignoreUnresolvablePlaceholders" value="true"/>
+ </bean>
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="security-config.xml" />
<import resource="${idp-config}" />
+ <import resource="classpath:persistenceContext.xml" />
+
<cxf:bus>
<cxf:features>
@@ -63,17 +74,57 @@
</http:tlsClientParameters>
</http:conduit>
+
+ <bean id="jaxbProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
+ <property name="depthProperties">
+ <bean id="depthProperties" class="org.apache.cxf.staxutils.DocumentDepthProperties">
+ <property name="innerElementCountThreshold" value="500"/>
+ </bean>
+ </property>
+ <property name="marshallerProperties">
+ <map>
+ <entry key="jaxb.formatted.output">
+ <value type="java.lang.Boolean">true</value>
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+ <bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider" />
+
<jaxrs:server id="idpService" address="/rs">
<jaxrs:serviceBeans>
<ref bean="idpServiceImpl" />
+ <ref bean="claimServiceImpl" />
+ <ref bean="applicationServiceImpl" />
+ <ref bean="trustedIdpServiceImpl" />
+ <ref bean="rootServiceImpl" />
</jaxrs:serviceBeans>
+ <!--
+ <jaxrs:resourceComparator>
+ <bean id="myServiceComparator" class="org.apache.cxf.fediz.service.idp.rest.QueryResourceInfoComparator"/>
+ </jaxrs:resourceComparator>
+ -->
+ <jaxrs:providers>
+ <ref bean="jaxbProvider"/>
+ <ref bean="jsonProvider"/>
+ <!--<ref bean="exceptionMapper"/>-->
+ </jaxrs:providers>
+ <jaxrs:extensionMappings>
+ <entry key="json" value="application/json;charset=UTF-8"/>
+ <entry key="xml" value="application/xml;charset=UTF-8"/>
+ </jaxrs:extensionMappings>
</jaxrs:server>
+ <bean id="rootServiceImpl" class="org.apache.cxf.fediz.service.idp.rest.RootServiceImpl" />
+
+ <bean id="idpServiceImpl" class="org.apache.cxf.fediz.service.idp.rest.IdpServiceImpl" />
+
+ <bean id="claimServiceImpl" class="org.apache.cxf.fediz.service.idp.rest.ClaimServiceImpl" />
- <bean id="idpServiceImpl" class="org.apache.cxf.fediz.service.idp.rest.IDPServices">
- <property name="configService" ref="config" />
- </bean>
+ <bean id="applicationServiceImpl" class="org.apache.cxf.fediz.service.idp.rest.ApplicationServiceImpl" />
+ <bean id="trustedIdpServiceImpl" class="org.apache.cxf.fediz.service.idp.rest.TrustedIdpServiceImpl" />
</beans>
Modified: cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/federation-signin-request.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/federation-signin-request.xml?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/federation-signin-request.xml (original)
+++ cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/federation-signin-request.xml Wed Jan 22 21:47:02 2014
@@ -1,4 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
<flow xmlns="http://www.springframework.org/schema/webflow"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/webflow
@@ -39,7 +57,7 @@
</action-state>
<decision-state id="provideIDPListForUser">
- <if test="flowScope.idpConfig.trustedIDPs == null or idpConfig.trustedIDPs.isEmpty()" then="checkDefaultToThisIDP" />
+ <if test="flowScope.idpConfig.trustedIdps == null or idpConfig.trustedIdps.isEmpty()" then="checkDefaultToThisIDP" />
<if test="flowScope.idpConfig.isProvideIDPList() == false" then="checkDefaultToThisIDP" else="showIDPList" />
</decision-state>
Modified: cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/federation-validate-request.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/federation-validate-request.xml?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/federation-validate-request.xml (original)
+++ cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/federation-validate-request.xml Wed Jan 22 21:47:02 2014
@@ -31,8 +31,8 @@
<set name="flowScope.wfresh" value="requestParameters.wfresh" />
<set name="flowScope.whr" value="requestParameters.whr" />
<set name="flowScope.wresult" value="requestParameters.wresult" />
- <evaluate expression="requestScope.getString('wauth','default')" result="flowScope.wauth" />
- <set name="flowScope.idpConfig" value="config.getIdpConfigs().get(0)" />
+ <evaluate expression="requestScope.getString('wauth','default')" result="flowScope.wauth" />
+ <set name="flowScope.idpConfig" value="config.getIDP(null)" />
</on-entry>
<if test="requestParameters.wa == null" then="viewBadRequest" />
<if test="requestParameters.wa != 'wsignin1.0' and requestParameters.wa != 'wsignout1.0' and requestParameters.wa != 'wsignoutcleanup1.0'" then="viewBadRequest" />
Modified: cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idp-config-realma.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idp-config-realma.xml?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idp-config-realma.xml (original)
+++ cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idp-config-realma.xml Wed Jan 22 21:47:02 2014
@@ -17,7 +17,7 @@
specific language governing permissions and limitations
under the License.
-->
-<beans xmlns="http://www.springframework.org/schema/beans"
+<beans profile="spring" xmlns="http://www.springframework.org/schema/beans"
xmlns:cxf="http://cxf.apache.org/core" xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:test="http://apache.org/hello_world_soap_http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util" xmlns:http="http://cxf.apache.org/transports/http/configuration"
@@ -27,7 +27,7 @@
http://cxf.apache.org/core
http://cxf.apache.org/schemas/core.xsd
http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxws
Modified: cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idp-config-realmb.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idp-config-realmb.xml?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idp-config-realmb.xml (original)
+++ cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idp-config-realmb.xml Wed Jan 22 21:47:02 2014
@@ -17,7 +17,7 @@
specific language governing permissions and limitations
under the License.
-->
-<beans xmlns="http://www.springframework.org/schema/beans"
+<beans profile="spring" xmlns="http://www.springframework.org/schema/beans"
xmlns:cxf="http://cxf.apache.org/core" xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:test="http://apache.org/hello_world_soap_http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util" xmlns:http="http://cxf.apache.org/transports/http/configuration"
@@ -27,7 +27,7 @@
http://cxf.apache.org/core
http://cxf.apache.org/schemas/core.xsd
http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+ http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxws
Modified: cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idplist.jsp
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idplist.jsp?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idplist.jsp (original)
+++ cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/idplist.jsp Wed Jan 22 21:47:02 2014
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.util.Map"%>
-<%@page import="org.apache.cxf.fediz.service.idp.model.IDPConfig"%>
-<%@page import="org.apache.cxf.fediz.service.idp.model.TrustedIDPConfig"%>
+<%@page import="org.apache.cxf.fediz.service.idp.domain.Idp"%>
+<%@page import="org.apache.cxf.fediz.service.idp.domain.TrustedIdp"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
@@ -13,11 +13,14 @@
<i>Where are you from? Please, select one Identity Provider in the list which is able to authenticate you. </i>
<form:form method="POST" id="idplist" name="idplist">
<br />
- <% IDPConfig idpConfig = (IDPConfig)request.getAttribute("idpConfig");
- Map<String, TrustedIDPConfig> trustedIDPs = idpConfig.getTrustedIDPs(); %>
+ <%
+ Idp idpConfig = (Idp)request.getAttribute("idpConfig");
+ %>
<select name="whr">
<option value="<%=idpConfig.getRealm()%>" selected="selected" ><%=idpConfig.getServiceDescription()%></option>
- <% for (TrustedIDPConfig trustedIDP : trustedIDPs.values()) { %>
+ <%
+ for (TrustedIdp trustedIDP : idpConfig.getTrustedIdps()) {
+ %>
<option value="<%=trustedIDP.getRealm()%>"><%=trustedIDP.getDescription()%></option>
<% } %>
</select>
Modified: cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/security-config.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/security-config.xml?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/security-config.xml (original)
+++ cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/security-config.xml Wed Jan 22 21:47:02 2014
@@ -27,7 +27,6 @@
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<context:property-placeholder location="classpath:realm.properties"/>
- <context:component-scan base-package="org.apache.cxf.fediz.service.idp"/>
<!-- DIABLE in production as it might log confidential information about the user -->
<!-- <security:debug /> -->
Modified: cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/web.xml?rev=1560525&r1=1560524&r2=1560525&view=diff
==============================================================================
--- cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/web.xml (original)
+++ cxf/fediz/trunk/services/idp/src/main/webapp/WEB-INF/web.xml Wed Jan 22 21:47:02 2014
@@ -1,3 +1,22 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+
+-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
@@ -11,6 +30,11 @@
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
+ <context-param>
+ <param-name>spring.profiles.active</param-name>
+ <param-value>jpa</param-value>
+ </context-param>
+
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>