Author: coheigea
Date: Fri Jun 1 10:58:22 2012
New Revision: 1345046
URL: http://svn.apache.org/viewvc?rev=1345046&view=rev
Log:
[CXF-4344] - Provide simplifications and shortcuts in CXF STS configuration
Added:
cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/provider/
cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/provider/DefaultSecurityTokenServiceProvider.java
Modified:
cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-encrypted-ut.xml
cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-transport.xml
cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-ut.xml
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-encrypted-ut.xml
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-transport.xml
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-ut.xml
Added:
cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/provider/DefaultSecurityTokenServiceProvider.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/provider/DefaultSecurityTokenServiceProvider.java?rev=1345046&view=auto
==============================================================================
---
cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/provider/DefaultSecurityTokenServiceProvider.java
(added)
+++
cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/provider/DefaultSecurityTokenServiceProvider.java
Fri Jun 1 10:58:22 2012
@@ -0,0 +1,127 @@
+/**
+ * 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.sts.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.transform.Source;
+
+import org.apache.cxf.sts.STSPropertiesMBean;
+import org.apache.cxf.sts.claims.ClaimsManager;
+import org.apache.cxf.sts.operation.AbstractOperation;
+import org.apache.cxf.sts.operation.TokenIssueOperation;
+import org.apache.cxf.sts.operation.TokenValidateOperation;
+import org.apache.cxf.sts.service.ServiceMBean;
+import org.apache.cxf.sts.token.provider.SAMLTokenProvider;
+import org.apache.cxf.sts.token.provider.TokenProvider;
+import org.apache.cxf.sts.token.validator.SAMLTokenValidator;
+import org.apache.cxf.sts.token.validator.TokenValidator;
+import org.apache.cxf.sts.token.validator.UsernameTokenValidator;
+import org.apache.cxf.sts.token.validator.X509TokenValidator;
+import org.apache.cxf.ws.security.sts.provider.SecurityTokenServiceProvider;
+import org.apache.cxf.ws.security.tokenstore.TokenStore;
+
+/**
+ * A "default" SecurityTokenServiceProvider implementation that defines the
Issue and Validate
+ * Operations of the STS and adds support for issuing and validating SAML
Assertions, and
+ * validating UsernameTokens and X.509 Tokens.
+ */
+public class DefaultSecurityTokenServiceProvider extends
SecurityTokenServiceProvider {
+
+ private STSPropertiesMBean stsProperties;
+ private boolean encryptIssuedToken;
+ private List<ServiceMBean> services;
+ private boolean returnReferences = true;
+ private TokenStore tokenStore;
+ private ClaimsManager claimsManager = new ClaimsManager();
+
+ public DefaultSecurityTokenServiceProvider() throws Exception {
+ super();
+ }
+
+ public void setReturnReferences(boolean returnReferences) {
+ this.returnReferences = returnReferences;
+ }
+
+ public void setTokenStore(TokenStore tokenStore) {
+ this.tokenStore = tokenStore;
+ }
+
+ public void setStsProperties(STSPropertiesMBean stsProperties) {
+ this.stsProperties = stsProperties;
+ }
+
+ public void setEncryptIssuedToken(boolean encryptIssuedToken) {
+ this.encryptIssuedToken = encryptIssuedToken;
+ }
+
+ public void setServices(List<ServiceMBean> services) {
+ this.services = services;
+ }
+
+ public void setClaimsManager(ClaimsManager claimsManager) {
+ this.claimsManager = claimsManager;
+ }
+
+ @Override
+ public Source invoke(Source request) {
+ if (getIssueOperation() == null) {
+ setIssueOperation(createTokenIssueOperation());
+ }
+ if (getValidateOperation() == null) {
+ setValidateOperation(createTokenValidateOperation());
+ }
+ return super.invoke(request);
+ }
+
+ private TokenIssueOperation createTokenIssueOperation() {
+ TokenIssueOperation issueOperation = new TokenIssueOperation();
+ populateAbstractOperation(issueOperation);
+
+ return issueOperation;
+ }
+
+ private TokenValidateOperation createTokenValidateOperation() {
+ TokenValidateOperation validateOperation = new
TokenValidateOperation();
+ populateAbstractOperation(validateOperation);
+
+ return validateOperation;
+ }
+
+ private void populateAbstractOperation(AbstractOperation
abstractOperation) {
+ List<TokenProvider> tokenProviders = new ArrayList<TokenProvider>();
+ tokenProviders.add(new SAMLTokenProvider());
+
+ List<TokenValidator> tokenValidators = new ArrayList<TokenValidator>();
+ tokenValidators.add(new SAMLTokenValidator());
+ tokenValidators.add(new UsernameTokenValidator());
+ tokenValidators.add(new X509TokenValidator());
+
+ abstractOperation.setTokenProviders(tokenProviders);
+ abstractOperation.setTokenValidators(tokenValidators);
+ abstractOperation.setStsProperties(stsProperties);
+ abstractOperation.setEncryptIssuedToken(encryptIssuedToken);
+ abstractOperation.setServices(services);
+ abstractOperation.setReturnReferences(returnReferences);
+ abstractOperation.setTokenStore(tokenStore);
+ abstractOperation.setClaimsManager(claimsManager);
+ }
+}
\ No newline at end of file
Modified:
cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-encrypted-ut.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-encrypted-ut.xml?rev=1345046&r1=1345045&r2=1345046&view=diff
==============================================================================
--- cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-encrypted-ut.xml
(original)
+++ cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-encrypted-ut.xml
Fri Jun 1 10:58:22 2012
@@ -40,22 +40,10 @@
</cxf:bus>
<bean id="encryptedUtSTSProviderBean"
-
class="org.apache.cxf.ws.security.sts.provider.SecurityTokenServiceProvider">
- <property name="issueOperation" ref="encryptedUtIssueDelegate"
/>
- <property name="validateOperation"
ref="encryptedUtValidateDelegate" />
- </bean>
-
- <bean id="encryptedUtIssueDelegate"
class="org.apache.cxf.sts.operation.TokenIssueOperation">
- <property name="tokenProviders"
ref="encryptedUtSamlTokenProvider" />
- <property name="services" ref="encryptedUtService" />
+
class="org.apache.cxf.sts.provider.DefaultSecurityTokenServiceProvider">
+ <property name="services" ref="encryptedUtService" />
<property name="stsProperties" ref="encryptedUtSTSProperties" />
- </bean>
-
- <bean id="encryptedUtValidateDelegate"
class="org.apache.cxf.sts.operation.TokenValidateOperation">
- </bean>
-
- <bean id="encryptedUtSamlTokenProvider"
class="org.apache.cxf.sts.token.provider.SAMLTokenProvider">
- </bean>
+ </bean>
<bean id="encryptedUtService"
class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="encryptedUtEndpoints" />
Modified:
cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-transport.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-transport.xml?rev=1345046&r1=1345045&r2=1345046&view=diff
==============================================================================
--- cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-transport.xml
(original)
+++ cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-transport.xml
Fri Jun 1 10:58:22 2012
@@ -40,45 +40,10 @@
</cxf:bus>
<bean id="transportSTSProviderBean"
-
class="org.apache.cxf.ws.security.sts.provider.SecurityTokenServiceProvider">
- <property name="issueOperation" ref="transportIssueDelegate" />
- <property name="validateOperation"
ref="transportValidateDelegate" />
- </bean>
-
- <bean id="transportIssueDelegate"
class="org.apache.cxf.sts.operation.TokenIssueOperation">
- <property name="tokenProviders" ref="transportTokenProviders" />
- <property name="tokenValidators" ref="transportTokenValidators"
/>
- <property name="services" ref="transportService" />
- <property name="stsProperties" ref="transportSTSProperties" />
- </bean>
-
- <bean id="transportValidateDelegate"
class="org.apache.cxf.sts.operation.TokenValidateOperation">
- <property name="tokenValidators" ref="transportTokenValidators"
/>
+
class="org.apache.cxf.sts.provider.DefaultSecurityTokenServiceProvider">
+ <property name="services" ref="transportService" />
<property name="stsProperties" ref="transportSTSProperties" />
- </bean>
-
- <util:list id="transportTokenProviders">
- <ref bean="transportSamlTokenProvider" />
- </util:list>
-
- <util:list id="transportTokenValidators">
- <ref bean="transportSamlTokenValidator" />
- <ref bean="transportX509TokenValidator" />
- <ref bean="transportUsernameTokenValidator" />
- </util:list>
-
- <bean id="transportSamlTokenProvider"
class="org.apache.cxf.sts.token.provider.SAMLTokenProvider">
- </bean>
-
- <bean id="transportX509TokenValidator"
class="org.apache.cxf.sts.token.validator.X509TokenValidator">
- </bean>
-
- <bean id="transportUsernameTokenValidator"
-
class="org.apache.cxf.sts.token.validator.UsernameTokenValidator">
- </bean>
-
- <bean id="transportSamlTokenValidator"
class="org.apache.cxf.sts.token.validator.SAMLTokenValidator">
- </bean>
+ </bean>
<bean id="transportService"
class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="transportEndpoints" />
Modified: cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-ut.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-ut.xml?rev=1345046&r1=1345045&r2=1345046&view=diff
==============================================================================
--- cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-ut.xml (original)
+++ cxf/trunk/services/sts/sts-war/src/main/webapp/WEB-INF/cxf-ut.xml Fri Jun
1 10:58:22 2012
@@ -40,27 +40,10 @@
</cxf:bus>
<bean id="utSTSProviderBean"
-
class="org.apache.cxf.ws.security.sts.provider.SecurityTokenServiceProvider">
- <property name="issueOperation" ref="utIssueDelegate" />
- <property name="validateOperation" ref="utValidateDelegate" />
- </bean>
-
- <bean id="utIssueDelegate"
class="org.apache.cxf.sts.operation.TokenIssueOperation">
- <property name="tokenProviders" ref="utSamlTokenProvider" />
- <property name="services" ref="utService" />
- <property name="stsProperties" ref="utSTSProperties" />
- </bean>
-
- <bean id="utValidateDelegate"
class="org.apache.cxf.sts.operation.TokenValidateOperation">
- <property name="tokenValidators" ref="utSamlTokenValidator" />
+
class="org.apache.cxf.sts.provider.DefaultSecurityTokenServiceProvider">
+ <property name="services" ref="utService" />
<property name="stsProperties" ref="utSTSProperties" />
- </bean>
-
- <bean id="utSamlTokenProvider"
class="org.apache.cxf.sts.token.provider.SAMLTokenProvider">
- </bean>
-
- <bean id="utSamlTokenValidator"
class="org.apache.cxf.sts.token.validator.SAMLTokenValidator">
- </bean>
+ </bean>
<bean id="utService" class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="utEndpoints" />
Modified:
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-encrypted-ut.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-encrypted-ut.xml?rev=1345046&r1=1345045&r2=1345046&view=diff
==============================================================================
---
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-encrypted-ut.xml
(original)
+++
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-encrypted-ut.xml
Fri Jun 1 10:58:22 2012
@@ -41,23 +41,11 @@
</cxf:features>
</cxf:bus>
- <bean id="encryptedUtSTSProviderBean"
-
class="org.apache.cxf.ws.security.sts.provider.SecurityTokenServiceProvider">
- <property name="issueOperation" ref="encryptedUtIssueDelegate"
/>
- <property name="validateOperation"
ref="encryptedUtValidateDelegate" />
- </bean>
-
- <bean id="encryptedUtIssueDelegate"
class="org.apache.cxf.sts.operation.TokenIssueOperation">
- <property name="tokenProviders"
ref="encryptedUtSamlTokenProvider" />
- <property name="services" ref="encryptedUtService" />
+ <bean id="encryptedUtSTSProviderBean"
+
class="org.apache.cxf.sts.provider.DefaultSecurityTokenServiceProvider">
+ <property name="services" ref="encryptedUtService" />
<property name="stsProperties" ref="encryptedUtSTSProperties" />
- </bean>
-
- <bean id="encryptedUtValidateDelegate"
class="org.apache.cxf.sts.operation.TokenValidateOperation">
- </bean>
-
- <bean id="encryptedUtSamlTokenProvider"
class="org.apache.cxf.sts.token.provider.SAMLTokenProvider">
- </bean>
+ </bean>
<bean id="encryptedUtService"
class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="encryptedUtEndpoints" />
Modified:
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-transport.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-transport.xml?rev=1345046&r1=1345045&r2=1345046&view=diff
==============================================================================
---
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-transport.xml
(original)
+++
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-transport.xml
Fri Jun 1 10:58:22 2012
@@ -48,45 +48,10 @@
</cxf:bus>
<bean id="transportSTSProviderBean"
-
class="org.apache.cxf.ws.security.sts.provider.SecurityTokenServiceProvider">
- <property name="issueOperation" ref="transportIssueDelegate" />
- <property name="validateOperation" ref="transportValidateDelegate"
/>
- </bean>
-
- <bean id="transportIssueDelegate"
class="org.apache.cxf.sts.operation.TokenIssueOperation">
- <property name="tokenProviders" ref="transportTokenProviders" />
- <property name="tokenValidators" ref="transportTokenValidators"
/>
- <property name="services" ref="transportService" />
- <property name="stsProperties" ref="transportSTSProperties" />
- </bean>
-
- <bean id="transportValidateDelegate"
class="org.apache.cxf.sts.operation.TokenValidateOperation">
- <property name="tokenValidators" ref="transportTokenValidators"
/>
+
class="org.apache.cxf.sts.provider.DefaultSecurityTokenServiceProvider">
+ <property name="services" ref="transportService" />
<property name="stsProperties" ref="transportSTSProperties" />
- </bean>
-
- <util:list id="transportTokenProviders">
- <ref bean="transportSamlTokenProvider" />
- </util:list>
-
- <util:list id="transportTokenValidators">
- <ref bean="transportSamlTokenValidator" />
- <ref bean="transportX509TokenValidator" />
- <ref bean="transportUsernameTokenValidator" />
- </util:list>
-
- <bean id="transportSamlTokenProvider"
class="org.apache.cxf.sts.token.provider.SAMLTokenProvider">
- </bean>
-
- <bean id="transportX509TokenValidator"
class="org.apache.cxf.sts.token.validator.X509TokenValidator">
- </bean>
-
- <bean id="transportUsernameTokenValidator"
-
class="org.apache.cxf.sts.token.validator.UsernameTokenValidator">
- </bean>
-
- <bean id="transportSamlTokenValidator"
class="org.apache.cxf.sts.token.validator.SAMLTokenValidator">
- </bean>
+ </bean>
<bean id="transportService"
class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="transportEndpoints" />
Modified:
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-ut.xml
URL:
http://svn.apache.org/viewvc/cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-ut.xml?rev=1345046&r1=1345045&r2=1345046&view=diff
==============================================================================
---
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-ut.xml
(original)
+++
cxf/trunk/services/sts/systests/basic/src/test/resources/org/apache/cxf/systest/sts/deployment/cxf-ut.xml
Fri Jun 1 10:58:22 2012
@@ -42,27 +42,10 @@
</cxf:bus>
<bean id="utSTSProviderBean"
-
class="org.apache.cxf.ws.security.sts.provider.SecurityTokenServiceProvider">
- <property name="issueOperation" ref="utIssueDelegate" />
- <property name="validateOperation" ref="utValidateDelegate" />
- </bean>
-
- <bean id="utIssueDelegate"
class="org.apache.cxf.sts.operation.TokenIssueOperation">
- <property name="tokenProviders" ref="utSamlTokenProvider" />
- <property name="services" ref="utService" />
- <property name="stsProperties" ref="utSTSProperties" />
- </bean>
-
- <bean id="utValidateDelegate"
class="org.apache.cxf.sts.operation.TokenValidateOperation">
- <property name="tokenValidators" ref="utSamlTokenValidator" />
+
class="org.apache.cxf.sts.provider.DefaultSecurityTokenServiceProvider">
+ <property name="services" ref="utService" />
<property name="stsProperties" ref="utSTSProperties" />
- </bean>
-
- <bean id="utSamlTokenProvider"
class="org.apache.cxf.sts.token.provider.SAMLTokenProvider">
- </bean>
-
- <bean id="utSamlTokenValidator"
class="org.apache.cxf.sts.token.validator.SAMLTokenValidator">
- </bean>
+ </bean>
<bean id="utService" class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="utEndpoints" />