Author: coheigea Date: Sun Jul 24 13:25:11 2011 New Revision: 1150355 URL: http://svn.apache.org/viewvc?rev=1150355&view=rev Log: Adding in a test for a Resource URI
Modified: webservices/wss4j/trunk/src/test/java/org/apache/ws/security/common/AbstractSAMLCallbackHandler.java webservices/wss4j/trunk/src/test/java/org/apache/ws/security/saml/SamlTokenTest.java Modified: webservices/wss4j/trunk/src/test/java/org/apache/ws/security/common/AbstractSAMLCallbackHandler.java URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/common/AbstractSAMLCallbackHandler.java?rev=1150355&r1=1150354&r2=1150355&view=diff ============================================================================== --- webservices/wss4j/trunk/src/test/java/org/apache/ws/security/common/AbstractSAMLCallbackHandler.java (original) +++ webservices/wss4j/trunk/src/test/java/org/apache/ws/security/common/AbstractSAMLCallbackHandler.java Sun Jul 24 13:25:11 2011 @@ -62,6 +62,7 @@ public abstract class AbstractSAMLCallba protected String subjectNameIDFormat = null; protected String subjectLocalityIpAddress = null; protected String subjectLocalityDnsAddress = null; + protected String resource = null; public void setConfirmationMethod(String confMethod) { confirmationMethod = confMethod; @@ -96,6 +97,10 @@ public abstract class AbstractSAMLCallba this.subjectLocalityDnsAddress = dnsAddress; } + public void setResource(String resource) { + this.resource = resource; + } + /** * Note that the SubjectBean parameter should be null for SAML2.0 */ @@ -133,6 +138,7 @@ public abstract class AbstractSAMLCallba authzBean.setActions(Collections.singletonList(actionBean)); authzBean.setResource("endpoint"); authzBean.setDecision(AuthDecisionStatementBean.Decision.PERMIT); + authzBean.setResource(resource); callback.setAuthDecisionStatementData(Collections.singletonList(authzBean)); } } Modified: webservices/wss4j/trunk/src/test/java/org/apache/ws/security/saml/SamlTokenTest.java URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/saml/SamlTokenTest.java?rev=1150355&r1=1150354&r2=1150355&view=diff ============================================================================== --- webservices/wss4j/trunk/src/test/java/org/apache/ws/security/saml/SamlTokenTest.java (original) +++ webservices/wss4j/trunk/src/test/java/org/apache/ws/security/saml/SamlTokenTest.java Sun Jul 24 13:25:11 2011 @@ -595,6 +595,45 @@ public class SamlTokenTest extends org.j } /** + * Test that creates, sends and processes an unsigned SAML 1.1 authorization assertion + * with a Resource URI. + */ + @org.junit.Test + public void testSAML1Resource() throws Exception { + SAML1CallbackHandler callbackHandler = new SAML1CallbackHandler(); + callbackHandler.setStatement(SAML1CallbackHandler.Statement.AUTHZ); + callbackHandler.setIssuer("www.example.com"); + callbackHandler.setResource("http://resource.org"); + + SAMLParms samlParms = new SAMLParms(); + samlParms.setCallbackHandler(callbackHandler); + AssertionWrapper assertion = new AssertionWrapper(samlParms); + + WSSecSAMLToken wsSign = new WSSecSAMLToken(); + + Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG); + WSSecHeader secHeader = new WSSecHeader(); + secHeader.insertSecurityHeader(doc); + + Document unsignedDoc = wsSign.build(doc, assertion, secHeader); + + if (LOG.isDebugEnabled()) { + LOG.debug("SAML 1.1 Authz Assertion (sender vouches):"); + String outputString = + org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(unsignedDoc); + LOG.debug(outputString); + } + + List<WSSecurityEngineResult> results = verify(unsignedDoc); + WSSecurityEngineResult actionResult = + WSSecurityUtil.fetchActionResult(results, WSConstants.ST_UNSIGNED); + AssertionWrapper receivedAssertion = + (AssertionWrapper) actionResult.get(WSSecurityEngineResult.TAG_SAML_ASSERTION); + assertTrue(receivedAssertion != null); + assertTrue(!receivedAssertion.isSigned()); + } + + /** * Verifies the soap envelope * <p/> *