You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2017/01/24 12:39:00 UTC
[2/3] cxf git commit: Allow custom RST Elements in STS requests
Allow custom RST Elements in STS requests
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/4a021b75
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/4a021b75
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/4a021b75
Branch: refs/heads/master
Commit: 4a021b75c6a604bf46f9e2679563e7b4ab9223bb
Parents: a3120a0
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Tue Jan 24 10:45:51 2017 +0000
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Tue Jan 24 10:45:51 2017 +0000
----------------------------------------------------------------------
.../apache/cxf/sts/operation/AbstractOperation.java | 10 ++++++++++
.../org/apache/cxf/sts/request/RequestParser.java | 12 ++++++++++++
.../apache/cxf/sts/request/TokenRequirements.java | 16 ++++++++++++++++
3 files changed, 38 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/4a021b75/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java
----------------------------------------------------------------------
diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java
index b1360b8..4d4dc88 100644
--- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java
+++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/operation/AbstractOperation.java
@@ -103,7 +103,16 @@ public abstract class AbstractOperation {
protected STSEventListener eventPublisher;
protected List<TokenDelegationHandler> delegationHandlers = new ArrayList<>();
protected TokenWrapper tokenWrapper = new DefaultTokenWrapper();
+ protected boolean allowCustomContent;
+ public boolean isAllowCustomContent() {
+ return allowCustomContent;
+ }
+
+ public void setAllowCustomContent(boolean allowCustomContent) {
+ this.allowCustomContent = allowCustomContent;
+ }
+
public TokenWrapper getTokenWrapper() {
return tokenWrapper;
}
@@ -189,6 +198,7 @@ public abstract class AbstractOperation {
stsProperties.configureProperties();
RequestParser requestParser = new RequestParser();
+ requestParser.setAllowCustomContent(allowCustomContent);
return requestParser.parseRequest(request, messageContext, stsProperties,
claimsManager.getClaimParsers());
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/4a021b75/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java
----------------------------------------------------------------------
diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java
index d3e58d5..2e705fd 100644
--- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java
+++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/RequestParser.java
@@ -95,6 +95,8 @@ public class RequestParser {
private static final Logger LOG = LogUtils.getL7dLogger(RequestParser.class);
+ private boolean allowCustomContent;
+
public RequestRequirements parseRequest(
RequestSecurityTokenType request, Map<String, Object> messageContext, STSPropertiesMBean stsProperties,
List<ClaimsParser> claimsParsers
@@ -144,6 +146,8 @@ public class RequestParser {
|| STSConstants.WSP_NS_04.equals(element.getNamespaceURI()))) {
tokenRequirements.setAppliesTo(element);
LOG.fine("Found AppliesTo element");
+ } else if (allowCustomContent) {
+ tokenRequirements.addCustomContent((Element)requestObject);
} else {
LOG.log(
Level.WARNING,
@@ -755,4 +759,12 @@ public class RequestParser {
throw new STSException("Cannot retreive token from reference", STSException.REQUEST_FAILED);
}
+ public boolean isAllowCustomContent() {
+ return allowCustomContent;
+ }
+
+ public void setAllowCustomContent(boolean allowCustomContent) {
+ this.allowCustomContent = allowCustomContent;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/4a021b75/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/TokenRequirements.java
----------------------------------------------------------------------
diff --git a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/TokenRequirements.java b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/TokenRequirements.java
index 7dd360c..45eab81 100644
--- a/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/TokenRequirements.java
+++ b/services/sts/sts-core/src/main/java/org/apache/cxf/sts/request/TokenRequirements.java
@@ -18,7 +18,12 @@
*/
package org.apache.cxf.sts.request;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
import org.w3c.dom.Element;
+
import org.apache.cxf.rt.security.claims.ClaimCollection;
/**
@@ -40,6 +45,7 @@ public class TokenRequirements {
private ClaimCollection secondaryClaims;
private Renewing renewing;
private Participants participants;
+ private final List<Element> customContent = new ArrayList<>();
public Renewing getRenewing() {
return renewing;
@@ -145,4 +151,14 @@ public class TokenRequirements {
this.participants = participants;
}
+ public List<Element> getCustomContent() {
+ return Collections.unmodifiableList(customContent);
+ }
+
+ public void addCustomContent(Element customElement) {
+ if (customElement != null) {
+ this.customContent.add(customElement);
+ }
+ }
+
}
\ No newline at end of file