Author: owulff
Date: Thu Feb 20 20:56:19 2014
New Revision: 1570351
URL: http://svn.apache.org/r1570351
Log:
[FEDIZ-70] Missing support for Web Services Policy 1.2
Modified:
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/domain/Application.java
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationEntity.java
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java
cxf/fediz/trunk/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPATest.java
Modified:
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java
URL:
http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java?rev=1570351&r1=1570350&r2=1570351&view=diff
==============================================================================
---
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java
(original)
+++
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/beans/STSClientAction.java
Thu Feb 20 20:56:19 2014
@@ -177,6 +177,11 @@ public class STSClientAction {
} else {
sts.setTokenType(getTokenType());
}
+
+ if (serviceConfig.getPolicyNamespace() != null &&
serviceConfig.getPolicyNamespace().length() > 0) {
+ sts.setWspNamespace(serviceConfig.getPolicyNamespace());
+ }
+
if (LOG.isDebugEnabled()) {
LOG.debug("TokenType " + sts.getTokenType() + " set for " +
wtrealm);
}
Modified:
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/domain/Application.java
URL:
http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/domain/Application.java?rev=1570351&r1=1570350&r2=1570351&view=diff
==============================================================================
---
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/domain/Application.java
(original)
+++
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/domain/Application.java
Thu Feb 20 20:56:19 2014
@@ -31,7 +31,7 @@ import javax.xml.bind.annotation.XmlType
@XmlRootElement(name = "application", namespace =
"http://org.apache.cxf.fediz/")
@XmlType(propOrder = {"realm", "role", "serviceDisplayName",
"serviceDescription", "protocol",
- "tokenType", "lifeTime", "encryptionCertificate",
"requestedClaims", "id" })
+ "tokenType", "lifeTime", "encryptionCertificate",
"requestedClaims", "policyNamespace", "id" })
public class Application implements Serializable {
private static final long serialVersionUID = 5644327504861846964L;
@@ -76,6 +76,9 @@ public class Application implements Seri
// Not in Metadata, configured in IDP or passed in wreq parameter
protected String lifeTime;
+ // WS-Policy Namespace for AppliesTo element
+ protected String policyNamespace;
+
private URI href;
@@ -170,6 +173,13 @@ public class Application implements Seri
public void setLifeTime(String lifeTime) {
this.lifeTime = lifeTime;
}
-
+
+ public String getPolicyNamespace() {
+ return policyNamespace;
+ }
+
+ public void setPolicyNamespace(String policyNamespace) {
+ this.policyNamespace = policyNamespace;
+ }
}
Modified:
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java
URL:
http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java?rev=1570351&r1=1570350&r2=1570351&view=diff
==============================================================================
---
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java
(original)
+++
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPAImpl.java
Thu Feb 20 20:56:19 2014
@@ -204,6 +204,7 @@ public class ApplicationDAOJPAImpl imple
entity.setServiceDescription(application.getServiceDescription());
entity.setServiceDisplayName(application.getServiceDisplayName());
entity.setTokenType(application.getTokenType());
+ entity.setPolicyNamespace(application.getPolicyNamespace());
}
public static Application entity2domain(ApplicationEntity entity,
List<String> expandList) {
@@ -217,6 +218,7 @@ public class ApplicationDAOJPAImpl imple
application.setServiceDescription(entity.getServiceDescription());
application.setServiceDisplayName(entity.getServiceDisplayName());
application.setTokenType(entity.getTokenType());
+ application.setPolicyNamespace(entity.getPolicyNamespace());
if (expandList != null && (expandList.contains("all") ||
expandList.contains("claims"))) {
for (ApplicationClaimEntity item : entity.getRequestedClaims()) {
Modified:
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationEntity.java
URL:
http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationEntity.java?rev=1570351&r1=1570350&r2=1570351&view=diff
==============================================================================
---
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationEntity.java
(original)
+++
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationEntity.java
Thu Feb 20 20:56:19 2014
@@ -68,8 +68,11 @@ public class ApplicationEntity {
// Not in Metadata, configured in IDP or passed in wreq parameter
private String lifeTime;
+
+ // WS-Policy Namespace in SignIn Response
+ private String policyNamespace;
-
+
public int getId() {
return id;
}
@@ -149,5 +152,13 @@ public class ApplicationEntity {
public void setLifeTime(String lifeTime) {
this.lifeTime = lifeTime;
}
+
+ public String getPolicyNamespace() {
+ return policyNamespace;
+ }
+
+ public void setPolicyNamespace(String policyNamespace) {
+ this.policyNamespace = policyNamespace;
+ }
}
Modified:
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=1570351&r1=1570350&r2=1570351&view=diff
==============================================================================
---
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java
(original)
+++
cxf/fediz/trunk/services/idp/src/main/java/org/apache/cxf/fediz/service/idp/service/jpa/DBLoaderImpl.java
Thu Feb 20 20:56:19 2014
@@ -89,6 +89,7 @@ public class DBLoaderImpl implements DBL
entity.setServiceDescription("Fedizhelloworld description");
entity.setServiceDisplayName("Fedizhelloworld");
entity.setTokenType("http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0");
+ entity.setPolicyNamespace("http://www.w3.org/ns/ws-policy");
// must be persistet here already as the ApplicationClaimEntity
requires the Application Id
em.persist(entity);
ApplicationClaimEntity ace1 = new ApplicationClaimEntity(entity,
claimEntity1);
@@ -152,43 +153,6 @@ public class DBLoaderImpl implements DBL
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);
Modified:
cxf/fediz/trunk/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPATest.java
URL:
http://svn.apache.org/viewvc/cxf/fediz/trunk/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPATest.java?rev=1570351&r1=1570350&r2=1570351&view=diff
==============================================================================
---
cxf/fediz/trunk/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPATest.java
(original)
+++
cxf/fediz/trunk/services/idp/src/test/java/org/apache/cxf/fediz/service/idp/service/jpa/ApplicationDAOJPATest.java
Thu Feb 20 20:56:19 2014
@@ -89,7 +89,10 @@ public class ApplicationDAOJPATest {
"ServiceDisplayName doesn't match");
Assert.isTrue("http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0"
.equals(application.getTokenType()),
- "TokenType doesn't match");
+ "TokenType doesn't match");
+ Assert.isTrue("http://www.w3.org/ns/ws-policy"
+ .equals(application.getPolicyNamespace()),
+ "Policy Namespace doesn't match");
Assert.isTrue(4 == application.getRequestedClaims().size(),
"Number of claims doesn't match [" +
application.getRequestedClaims().size() + "]");
}
@@ -144,7 +147,10 @@ public class ApplicationDAOJPATest {
"ServiceDisplayName doesn't match");
Assert.isTrue("http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1"
.equals(application.getTokenType()),
- "TokenType doesn't match");
+ "TokenType doesn't match");
+ Assert.isTrue("http://www.w3.org/ns/ws-policy"
+ .equals(application.getPolicyNamespace()),
+ "Policy Namespace doesn't match");
Assert.isTrue(0 == application.getRequestedClaims().size(),
"Number of claims doesn't match");
}
@@ -167,6 +173,7 @@ public class ApplicationDAOJPATest {
application.setServiceDescription("UFedizhelloworld2 description");
application.setServiceDisplayName("UFedizhelloworld2");
application.setTokenType("Uhttp://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1");
+ application.setPolicyNamespace("Uhttp://www.w3.org/ns/ws-policy");
Assert.isTrue("U".equals(application.getEncryptionCertificate()),
"EncryptionCertificate doesn't match");
@@ -184,7 +191,10 @@ public class ApplicationDAOJPATest {
"ServiceDisplayName doesn't match");
Assert.isTrue("Uhttp://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1"
.equals(application.getTokenType()),
- "TokenType doesn't match");
+ "TokenType doesn't match");
+ Assert.isTrue("Uhttp://www.w3.org/ns/ws-policy"
+ .equals(application.getPolicyNamespace()),
+ "Policy Namespace doesn't match");
Assert.isTrue(0 == application.getRequestedClaims().size(),
"Number of claims doesn't match");
}
@@ -342,6 +352,7 @@ public class ApplicationDAOJPATest {
application.setServiceDescription("Fedizhelloworld2 description");
application.setServiceDisplayName("Fedizhelloworld2");
application.setTokenType("http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1");
+ application.setPolicyNamespace("http://www.w3.org/ns/ws-policy");
return application;
}