summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org')
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicy.java45
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicyProcessor.java156
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicy.java132
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicyProcessor.java157
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationCallbackHandler.java71
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationImplementationPolicyProvider.java193
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationInterceptor.java66
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicy.java79
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProcessor.java140
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProviderFactory.java69
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java234
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/DefaultLDAPSecurityExtensionPoint.java133
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/LDAPSecurityHandler.java63
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/LDAPSecurityHandlerExtensionPoint.java50
-rw-r--r--sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/util/HttpSecurityUtil.java124
15 files changed, 0 insertions, 1712 deletions
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicy.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicy.java
deleted file mode 100644
index 4ab7e582ac..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicy.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.tuscany.sca.policy.authentication;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.host.http.UserContext;
-
-/**
- * This policy configures authentication/authorization
- * in embedded http servers
- *
- * @version $Rev$ $Date$
- */
-public class AuthenticationConfigurationPolicy {
- public static final QName NAME = new QName(Constants.SCA10_TUSCANY_NS, "basicAuthenticationConfiguration");
-
- private List<UserContext> users = new ArrayList<UserContext>();
-
- public List<UserContext> getUsers() {
- return this.users;
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicyProcessor.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicyProcessor.java
deleted file mode 100644
index a112e25364..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/authentication/AuthenticationConfigurationPolicyProcessor.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * 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.tuscany.sca.policy.authentication;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
-import java.util.StringTokenizer;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.host.http.UserContext;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
-
-/**
- * <sca:policySet name="widgetBindingAuthenticationPolicySet"
- * provides="sca:authentication"
- * appliesTo="tuscany:binding.http">
- * <tuscany:authenticationConfiguration>
- * <tuscany:user username="user1" password="tuscany" roles="admin"/>
- * <tuscany:user username="user2" password="tuscany" roles="admin, user"/>
- * <tuscany:user username="user3" password="tuscany" roles="user"/>
- * </tuscany:authenticationConfiguration>
- * </sca:policySet>
- *
- *
- * @version $Rev$ $Date$
- */
-
-public class AuthenticationConfigurationPolicyProcessor implements StAXArtifactProcessor<AuthenticationConfigurationPolicy> {
- private static final QName AUTHENTICATION_CONFIGURATION_QNAME = new QName(Constants.SCA10_TUSCANY_NS, "authenticationConfiguration");
- private static final QName USER_QNAME = new QName(Constants.SCA10_TUSCANY_NS, "user");
-
- private Monitor monitor;
-
- public AuthenticationConfigurationPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
- this.monitor = monitor;
- }
-
- /**
- * Report a error.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "policy-security-http-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- public QName getArtifactType() {
- return AuthenticationConfigurationPolicy.NAME;
- }
-
- public Class<AuthenticationConfigurationPolicy> getModelType() {
- return AuthenticationConfigurationPolicy.class;
- }
-
- public AuthenticationConfigurationPolicy read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- AuthenticationConfigurationPolicy authenticationConfiguration = new AuthenticationConfigurationPolicy();
-
- int event = reader.getEventType();
- QName start = reader.getName();
- QName name = null;
- while (true) {
- switch (event) {
- case START_ELEMENT:
- name = reader.getName();
- if(USER_QNAME.equals(name)) {
- UserContext user = new UserContext();
- //<tuscany:user username="user1" password="tuscany" roles="admin, user"/>
- String username = reader.getAttributeValue(null, "username");
- if(username == null) {
- error("RequiredAttributeUsernameMissing", reader);
- } else {
- user.setUsername(username);
- }
-
- String password = reader.getAttributeValue(null, "password");
- if(password == null) {
- error("RequiredAttributePasswordMissing", reader);
- } else {
- user.setPassword(password);
- }
-
- String roles = reader.getAttributeValue(null, "roles");
- if(roles == null) {
- error("RequiredAttributeRolesMissing", reader);
- } else {
- for (StringTokenizer tokens = new StringTokenizer(roles, ","); tokens.hasMoreTokens();) {
- user.getRoles().add(tokens.nextToken());
- }
- }
-
- authenticationConfiguration.getUsers().add(user);
- }
- break;
- case END_ELEMENT:
- if (start.equals(reader.getName())) {
- if (reader.hasNext()) {
- reader.next();
- }
- return authenticationConfiguration;
- }
-
- }
- if (reader.hasNext()) {
- event = reader.next();
- } else {
- return authenticationConfiguration;
- }
- }
- }
-
- public void write(AuthenticationConfigurationPolicy model, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
- // TODO Auto-generated method stub
- }
-
- public void resolve(AuthenticationConfigurationPolicy model, ModelResolver resolver) throws ContributionResolveException {
-
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicy.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicy.java
deleted file mode 100644
index 5301e13269..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicy.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * 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.tuscany.sca.policy.confidentiality;
-
-import java.util.Properties;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.policy.Policy;
-
-
-/**
- * Models the SCA Implementation Security Policy Assertion for Confidentiality.
- *
- * This would map to enabling SSL communication and would require
- * the following configuration items :
- *
- * - javax.net.ssl.keyStore
- * - javax.net.ssl.keyStorePassword
- * - javax.net.ssl.keyStoreType
- *
- * - javax.net.ssl.trustStoreType
- * - javax.net.ssl.trustStore
- * - javax.net.ssl.trustStorePassword
- *
- * @version $Rev$ $Date$
- */
-public class ConfidentialityPolicy implements Policy {
- public static final QName NAME = new QName(Constants.SCA10_TUSCANY_NS, "confidentiality");
-
- private String trustStoreType;
- private String trustStore;
- private String trustStorePassword;
-
- private String keyStoreType;
- private String keyStore;
- private String keyStorePassword;
-
-
- public String getTrustStoreType() {
- return trustStoreType;
- }
-
- public void setTrustStoreType(String trustStoreType) {
- this.trustStoreType = trustStoreType;
- }
-
- public String getTrustStore() {
- return trustStore;
- }
-
- public void setTrustStore(String trustStore) {
- this.trustStore = trustStore;
- }
-
- public String getTrustStorePassword() {
- return trustStorePassword;
- }
-
- public void setTrustStorePassword(String trustStorePassword) {
- this.trustStorePassword = trustStorePassword;
- }
-
- public String getKeyStoreType() {
- return keyStoreType;
- }
-
- public void setKeyStoreType(String keyStoreType) {
- this.keyStoreType = keyStoreType;
- }
-
- public String getKeyStore() {
- return keyStore;
- }
-
- public void setKeyStore(String keyStore) {
- this.keyStore = keyStore;
- }
-
- public String getKeyStorePassword() {
- return keyStorePassword;
- }
-
- public void setKeyStorePassword(String keyStorePassword) {
- this.keyStorePassword = keyStorePassword;
- }
-
- public QName getSchemaName() {
- return NAME;
- }
-
- public boolean isUnresolved() {
- return false;
- }
-
- public void setUnresolved(boolean unresolved) {
-
- }
-
- public Properties toProperties() {
- Properties properties = new Properties();
-
- properties.put("javax.net.ssl.trustStoreType", trustStoreType);
- properties.put("javax.net.ssl.trustStore", trustStore);
- properties.put("javax.net.ssl.trustStorePassword", trustStorePassword);
-
- properties.put("javax.net.ssl.keyStoreType", keyStoreType);
- properties.put("javax.net.ssl.keyStore", keyStore);
- properties.put("javax.net.ssl.keyStorePassword", keyStorePassword);
-
- return properties;
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicyProcessor.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicyProcessor.java
deleted file mode 100644
index 86866c2c8e..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/confidentiality/ConfidentialityPolicyProcessor.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * 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.tuscany.sca.policy.confidentiality;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
-
-public class ConfidentialityPolicyProcessor implements StAXArtifactProcessor<ConfidentialityPolicy> {
- private static final QName KEY_STORE_QNAME = new QName(Constants.SCA10_TUSCANY_NS, "keyStore");
- private static final QName TRUST_STORE_QNAME = new QName(Constants.SCA10_TUSCANY_NS, "trustStore");
-
- private Monitor monitor;
-
- public ConfidentialityPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
- this.monitor = monitor;
- }
-
- /**
- * Report a error.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "policy-security-http-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- public QName getArtifactType() {
- return ConfidentialityPolicy.NAME;
- }
-
- public Class<ConfidentialityPolicy> getModelType() {
- return ConfidentialityPolicy.class;
- }
-
- public ConfidentialityPolicy read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- ConfidentialityPolicy policy = new ConfidentialityPolicy();
- int event = reader.getEventType();
- QName start = reader.getName();
- QName name = null;
- while (true) {
- switch (event) {
- case START_ELEMENT:
- name = reader.getName();
- if(KEY_STORE_QNAME.equals(name)) {
- //<tuscany:keyStore type="JKS" file="conf/tomcat.keystore" password="apache"/>
- String type = reader.getAttributeValue(null, "type");
- if(type == null) {
- error("RequiredAttributeKeyStoreTypeMissing", reader);
- } else {
- policy.setKeyStoreType(type);
- }
-
- String file = reader.getAttributeValue(null, "file");
- if(file == null) {
- error("RequiredAttributeKeyStoreFileMissing", reader);
- } else {
- policy.setKeyStore(file);
- }
-
- String password = reader.getAttributeValue(null, "password");
- if(file == null) {
- error("RequiredAttributeKeyStorePasswordMissing", reader);
- } else {
- policy.setKeyStorePassword(password);
- }
-
- } else if(TRUST_STORE_QNAME.equals(name)) {
- //<tuscany:trustStore type="" file="" password=""/>
- String type = reader.getAttributeValue(null, "type");
- if(type == null) {
- error("RequiredAttributeTrustStoreTypeMissing", reader);
- } else {
- policy.setTrustStoreType(type);
- }
-
- String file = reader.getAttributeValue(null, "file");
- if(file == null) {
- error("RequiredAttributeTrusStoreFileMissing", reader);
- } else {
- policy.setTrustStore(file);
- }
-
- String password = reader.getAttributeValue(null, "password");
- if(file == null) {
- error("RequiredAttributeTrustStorePasswordMissing", reader);
- } else {
- policy.setTrustStorePassword(password);
- }
-
- }
- break;
- case END_ELEMENT:
- if (start.equals(reader.getName())) {
- if (reader.hasNext()) {
- reader.next();
- }
- return policy;
- }
-
- }
- if (reader.hasNext()) {
- event = reader.next();
- } else {
- return policy;
- }
- } }
-
- public void write(ConfidentialityPolicy model, XMLStreamWriter writer) throws ContributionWriteException,
- XMLStreamException {
- // TODO Auto-generated method stub
-
- }
-
- public void resolve(ConfidentialityPolicy model, ModelResolver resolver) throws ContributionResolveException {
-
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationCallbackHandler.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationCallbackHandler.java
deleted file mode 100644
index ee094f022d..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationCallbackHandler.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http;
-
-import java.io.IOException;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import org.apache.tuscany.sca.policy.SecurityUtil;
-import org.apache.tuscany.sca.policy.authentication.basic.BasicAuthenticationPrincipal;
-
-
-/**
- * @version $Rev$ $Date$
- */
-public class LDAPRealmAuthenticationCallbackHandler implements CallbackHandler {
- private final Subject subject;
-
- public LDAPRealmAuthenticationCallbackHandler(Subject subject) {
- this.subject = subject;
- }
- public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
-
- BasicAuthenticationPrincipal principal = SecurityUtil.getPrincipal(subject, BasicAuthenticationPrincipal.class);
-
- if (principal != null){
- /*
- System.out.println(">>> LDAPRealmAuthenticationCallbackHandler" +
- " Username: " + principal.getName() +
- " Password: " + principal.getPassword());
- */
- for (int i = 0; i < callbacks.length; i++) {
- if (callbacks[i] instanceof NameCallback) {
- NameCallback nc = (NameCallback)callbacks[i];
- nc.setName(principal.getName());
- } else if (callbacks[i] instanceof PasswordCallback) {
- PasswordCallback pc = (PasswordCallback)callbacks[i];
- pc.setPassword(principal.getPassword().toCharArray());
- } else {
- throw new UnsupportedCallbackException
- (callbacks[i], "Unsupported Callback!");
- }
- }
- }
-
-
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationImplementationPolicyProvider.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationImplementationPolicyProvider.java
deleted file mode 100644
index 8a2f38115a..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationImplementationPolicyProvider.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.ConfiguredOperation;
-import org.apache.tuscany.sca.assembly.Implementation;
-import org.apache.tuscany.sca.assembly.OperationsConfigurator;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Interceptor;
-import org.apache.tuscany.sca.invocation.Phase;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy;
-import org.apache.tuscany.sca.policy.security.http.extensibility.LDAPSecurityHandler;
-import org.apache.tuscany.sca.provider.PolicyProvider;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-
-public class LDAPRealmAuthenticationImplementationPolicyProvider implements PolicyProvider {
- private RuntimeComponent component;
- private Implementation implementation;
- private LDAPSecurityHandler securityHandler;
-
- public LDAPRealmAuthenticationImplementationPolicyProvider(RuntimeComponent component, Implementation implementation, LDAPSecurityHandler securityHandler) {
- super();
- this.component = component;
- this.implementation = implementation;
- this.securityHandler = securityHandler;
- }
-
-
- public String getPhase() {
- return Phase.IMPLEMENTATION_POLICY;
- }
-
- public Interceptor createInterceptor(Operation operation) {
- List<LDAPRealmAuthenticationPolicy> policies = findAuthenticationPolicies(operation);
- if (policies == null || policies.isEmpty()) {
- return null;
- } else {
- return new LDAPRealmAuthenticationInterceptor(securityHandler, findAuthenticationPolicies(operation), findAuthorizationPolicies(operation));
- }
- }
-
- /**
- * Internal utility methods
- */
-
- /**
- * Find applicable authentication policySets
- * It first check if any explicitly policySet was identified
- * Otherwise it look into the list of applicablePolicySets
- * @param op
- * @return
- */
- private List<LDAPRealmAuthenticationPolicy> findAuthenticationPolicies(Operation op) {
- List<LDAPRealmAuthenticationPolicy> polices = new ArrayList<LDAPRealmAuthenticationPolicy>();
-
-
- // check explicity added policies first
- ConfiguredOperation configuredOperation = findOperation(op);
- if (configuredOperation!= null && configuredOperation.getPolicySets().size() > 0) {
- for ( PolicySet ps : configuredOperation.getPolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof LDAPRealmAuthenticationPolicy) {
- polices.add((LDAPRealmAuthenticationPolicy)p);
- }
- }
- }
- }
-
- // otherwise find applicable policySets
- if ( polices.size() == 0) {
-
- if (implementation instanceof OperationsConfigurator) {
- OperationsConfigurator operationsConfigurator = (OperationsConfigurator)implementation;
- for (ConfiguredOperation cop : operationsConfigurator.getConfiguredOperations()) {
- if (cop != null && cop.getName() != null && cop.getName().equals(op.getName())) {
- for (PolicySet ps : cop.getPolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (LDAPRealmAuthenticationPolicy.class.isInstance(p)) {
- polices.add((LDAPRealmAuthenticationPolicy)p);
- }
- }
- }
- }
- }
- }
-
- List<PolicySet> policySets = component.getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (LDAPRealmAuthenticationPolicy.class.isInstance(p)) {
- polices.add((LDAPRealmAuthenticationPolicy)p);
- }
- }
- }
- }
-
- return polices;
- }
-
- /**
- * Find applicable authorization policySets
- * It first check if any explicitly policySet was identified
- * Otherwise it look into the list of applicablePolicySets
- * @param op
- * @return
- */
- private List<AuthorizationPolicy> findAuthorizationPolicies(Operation op) {
- List<AuthorizationPolicy> polices = new ArrayList<AuthorizationPolicy>();
-
-
- // check explicity added policies first
- ConfiguredOperation configuredOperation = findOperation(op);
- if (configuredOperation!= null && configuredOperation.getPolicySets().size() > 0) {
- for ( PolicySet ps : configuredOperation.getPolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof AuthorizationPolicy) {
- polices.add((AuthorizationPolicy)p);
- }
- }
- }
- }
-
- // otherwise find applicable policySets
- if ( polices.size() == 0) {
-
- if (implementation instanceof OperationsConfigurator) {
- OperationsConfigurator operationsConfigurator = (OperationsConfigurator)implementation;
- for (ConfiguredOperation cop : operationsConfigurator.getConfiguredOperations()) {
- if (cop != null && cop.getName() != null && cop.getName().equals(op.getName())) {
- for (PolicySet ps : cop.getPolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (AuthorizationPolicy.class.isInstance(p)) {
- polices.add((AuthorizationPolicy)p);
- }
- }
- }
- }
- }
- }
-
- List<PolicySet> policySets = component.getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (AuthorizationPolicy.class.isInstance(p)) {
- polices.add((AuthorizationPolicy)p);
- }
- }
- }
-
- }
-
- return polices;
- }
-
- /**
- * Find a given configured operation
- * @param operation
- * @return
- */
- private ConfiguredOperation findOperation(Operation operation) {
- ConfiguredOperation configuredOperation = null;
-
- for (ConfiguredOperation cOperation : ((OperationsConfigurator)component).getConfiguredOperations()) {
- if(cOperation.getName().equals(operation.getName())) {
- configuredOperation = cOperation;
- break;
- }
- }
-
- return configuredOperation;
- }
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationInterceptor.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationInterceptor.java
deleted file mode 100644
index 3f71891a01..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationInterceptor.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.invocation.Interceptor;
-import org.apache.tuscany.sca.invocation.Invoker;
-import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy;
-import org.apache.tuscany.sca.policy.security.http.extensibility.LDAPSecurityHandler;
-import org.osoa.sca.ServiceRuntimeException;
-
-/**
- * @version $Rev$ $Date$
- */
-public class LDAPRealmAuthenticationInterceptor implements Interceptor {
- private LDAPSecurityHandler securityHandler;
- private List<LDAPRealmAuthenticationPolicy> authenticationPolicies;
- private List<AuthorizationPolicy> authorizationPolicies;
- private Invoker next;
-
- public LDAPRealmAuthenticationInterceptor(LDAPSecurityHandler securityHandler,
- List<LDAPRealmAuthenticationPolicy> authenticationPolicies,
- List<AuthorizationPolicy> authorizationPolicies) {
- super();
- this.securityHandler = securityHandler;
- this.authenticationPolicies = authenticationPolicies;
- this.authorizationPolicies = authorizationPolicies;
- }
-
- public Invoker getNext() {
- return next;
- }
-
- public void setNext(Invoker next) {
- this.next = next;
- }
-
- public Message invoke(Message msg) {
- try {
- securityHandler.handleSecurity(msg, authenticationPolicies, authorizationPolicies);
-
- } catch (Exception e) {
- throw new ServiceRuntimeException(e);
- }
- return getNext().invoke(msg);
- }
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicy.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicy.java
deleted file mode 100644
index ddb6790964..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicy.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http;
-
-import javax.xml.namespace.QName;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.policy.Policy;
-
-/**
- * This policy provides realm based authentication/authorization
- *
- * @version $Rev$ $Date$
- */
-public class LDAPRealmAuthenticationPolicy implements Policy{
- static final QName NAME = new QName(Constants.SCA10_TUSCANY_NS,"ldapRealmAuthentication");
-
- private String realmName;
- private String realmConfigurationName;
-
- /**
- *
- * @return
- */
- public String getRealmName() {
- return realmName;
- }
-
- /**
- *
- * @param realmName
- */
- public void setRealmName(String realmName) {
- this.realmName = realmName;
- }
-
- /**
- *
- * @return
- */
- public String getRealmConfigurationName() {
- return realmConfigurationName;
- }
-
- /**
- *
- * @param realmConfigurationName
- */
- public void setRealmConfigurationName(String realmConfigurationName) {
- this.realmConfigurationName = realmConfigurationName;
- }
-
- public QName getSchemaName() {
- return NAME;
- }
-
- public boolean isUnresolved() {
- return false;
- }
-
- public void setUnresolved(boolean unresolved) {
- }
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProcessor.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProcessor.java
deleted file mode 100644
index 625bb08b7f..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProcessor.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http;
-
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.service.ContributionReadException;
-import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
-import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
-
-
-/**
- *
- * @version $Rev$ $Date$
- */
-
-public class LDAPRealmAuthenticationPolicyProcessor implements StAXArtifactProcessor<LDAPRealmAuthenticationPolicy> {
- static final QName REALM_QNAME = new QName(Constants.SCA10_TUSCANY_NS,"realm");
- public static final QName REALM_CONFIGURATION_QNAME = new QName(Constants.SCA10_TUSCANY_NS,"realmConfigurationName");
-
- private Monitor monitor;
-
-
- public LDAPRealmAuthenticationPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
- this.monitor = monitor;
- }
-
- /**
- * Report a error.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Object... messageParameters) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "policy-security-http-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
- monitor.problem(problem);
- }
- }
-
- public Class<LDAPRealmAuthenticationPolicy> getModelType() {
- return LDAPRealmAuthenticationPolicy.class;
- }
-
-
- public QName getArtifactType() {
- return LDAPRealmAuthenticationPolicy.NAME;
- }
-
- public LDAPRealmAuthenticationPolicy read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- LDAPRealmAuthenticationPolicy policy = new LDAPRealmAuthenticationPolicy();
- int event = reader.getEventType();
- QName name = null;
-
- while (reader.hasNext()) {
- event = reader.getEventType();
- switch (event) {
- case START_ELEMENT : {
- name = reader.getName();
- if (name.equals(REALM_QNAME)) {
- String realmName = reader.getElementText();
- if (realmName != null) {
- policy.setRealmName(realmName.trim());
- }
- }
- if (name.equals(REALM_CONFIGURATION_QNAME)) {
- String realmConfigurationName = reader.getElementText();
- if (realmConfigurationName != null) {
- policy.setRealmConfigurationName(realmConfigurationName.trim());
- }
- }
-
- break;
- }
- }
-
- if ( event == END_ELEMENT ) {
- if ( LDAPRealmAuthenticationPolicy.NAME.equals(reader.getName()) ) {
- break;
- }
- }
-
- //Read the next element
- if (reader.hasNext()) {
- reader.next();
- }
- }
-
- return policy;
- }
-
- public void write(LDAPRealmAuthenticationPolicy policy, XMLStreamWriter writer) throws ContributionWriteException,
- XMLStreamException {
- String prefix = "tuscany";
- writer.writeStartElement(prefix,
- LDAPRealmAuthenticationPolicy.NAME.getLocalPart(),
- LDAPRealmAuthenticationPolicy.NAME.getNamespaceURI());
- writer.writeNamespace("tuscany", Constants.SCA10_TUSCANY_NS);
-
-
- writer.writeEndElement();
- }
-
-
- public void resolve(LDAPRealmAuthenticationPolicy policy, ModelResolver resolver) throws ContributionResolveException {
-
- }
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProviderFactory.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProviderFactory.java
deleted file mode 100644
index 45fe650b22..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationPolicyProviderFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http;
-
-import org.apache.tuscany.sca.assembly.Binding;
-import org.apache.tuscany.sca.assembly.Implementation;
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.policy.security.http.extensibility.LDAPSecurityHandler;
-import org.apache.tuscany.sca.policy.security.http.extensibility.LDAPSecurityHandlerExtensionPoint;
-import org.apache.tuscany.sca.provider.PolicyProvider;
-import org.apache.tuscany.sca.provider.PolicyProviderFactory;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
-import org.apache.tuscany.sca.runtime.RuntimeComponentService;
-
-/**
- * @version $Rev$ $Date$
- */
-public class LDAPRealmAuthenticationPolicyProviderFactory implements PolicyProviderFactory<LDAPRealmAuthenticationPolicy> {
- private LDAPSecurityHandler securityHandler;
-
- public LDAPRealmAuthenticationPolicyProviderFactory(ExtensionPointRegistry registry) {
- super();
-
- LDAPSecurityHandlerExtensionPoint securityHandlerExtensionPoint = registry.getExtensionPoint(LDAPSecurityHandlerExtensionPoint.class);
- if (securityHandlerExtensionPoint.getLDAPSecurityHandlers().size() > 0) {
- securityHandler = securityHandlerExtensionPoint.getLDAPSecurityHandlers().get(0);
- }
- }
-
- public Class<LDAPRealmAuthenticationPolicy> getModelType() {
- return LDAPRealmAuthenticationPolicy.class;
- }
-
- public PolicyProvider createImplementationPolicyProvider(RuntimeComponent component, Implementation implementation) {
- return new LDAPRealmAuthenticationImplementationPolicyProvider(component, implementation, securityHandler);
- }
-
- public PolicyProvider createReferencePolicyProvider(RuntimeComponent component,
- RuntimeComponentReference reference,
- Binding binding) {
- return null;
- }
-
- public PolicyProvider createServicePolicyProvider(RuntimeComponent component,
- RuntimeComponentService service,
- Binding binding) {
- return new LDAPRealmAuthenticationServicePolicyProvider(component, service, binding, securityHandler);
- }
-
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java
deleted file mode 100644
index 5a8b7c7d85..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.Binding;
-import org.apache.tuscany.sca.assembly.ConfiguredOperation;
-import org.apache.tuscany.sca.assembly.OperationsConfigurator;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Interceptor;
-import org.apache.tuscany.sca.invocation.Phase;
-import org.apache.tuscany.sca.policy.PolicySet;
-import org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy;
-import org.apache.tuscany.sca.policy.security.http.extensibility.LDAPSecurityHandler;
-import org.apache.tuscany.sca.provider.PolicyProvider;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.apache.tuscany.sca.runtime.RuntimeComponentService;
-
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public class LDAPRealmAuthenticationServicePolicyProvider implements PolicyProvider {
- private RuntimeComponent component;
- private RuntimeComponentService service;
- private Binding binding;
- LDAPSecurityHandler securityHandler;
-
- private List<Operation> operations = new ArrayList<Operation>();
-
- public LDAPRealmAuthenticationServicePolicyProvider(RuntimeComponent component, RuntimeComponentService service, Binding binding, LDAPSecurityHandler securityHandler) {
- super();
- this.component = component;
- this.service = service;
- this.binding = binding;
- this.securityHandler = securityHandler;
-
- this.operations.addAll(service.getInterfaceContract().getInterface().getOperations());
- }
-
- public String getPhase() {
- return Phase.SERVICE_BINDING_POLICY;
- }
-
- public Interceptor createInterceptor(Operation operation) {
- List<LDAPRealmAuthenticationPolicy> authenticationPolicies = null;
- List<AuthorizationPolicy> authorizationPolicies = null;
-
- if (operation != null) {
- authenticationPolicies = findAuthenticationPolicies(operation);
- authorizationPolicies = findAuthorizationPolicies(operation);
- }
-
- if (authenticationPolicies == null || authenticationPolicies.isEmpty()) {
- return null;
- } else {
- return new LDAPRealmAuthenticationInterceptor(securityHandler, authenticationPolicies, authorizationPolicies);
- }
- }
-
-
- /**
- * Private utility methods
- */
-
- /**
- * Find applicable authorization policySets
- * It first check if any explicitly policySet was identified
- * Otherwise it look into the list of applicablePolicySets
- * @param op
- * @return
- */
- private List<LDAPRealmAuthenticationPolicy> findAuthenticationPolicies(Operation op) {
- List<LDAPRealmAuthenticationPolicy> polices = new ArrayList<LDAPRealmAuthenticationPolicy>();
-
- // check explicity added policies first
- ConfiguredOperation configuredOperation = findOperation(op);
- if (configuredOperation!= null && configuredOperation.getPolicySets().size() > 0) {
- for ( PolicySet ps : configuredOperation.getPolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof LDAPRealmAuthenticationPolicy) {
- polices.add((LDAPRealmAuthenticationPolicy)p);
- }
- }
- }
- }
-
-
- // otherwise find applicable policySets
- if ( polices.size() == 0) {
- // FIXME: How do we get a list of effective policySets for a given operation?
- for(Operation operation : operations) {
- if (operation!= null && operation.getName() != null && operation.getName().equals(op.getName())) {
- for (PolicySet ps : operation.getPolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof LDAPRealmAuthenticationPolicy) {
- polices.add((LDAPRealmAuthenticationPolicy)p);
- }
- }
- }
- }
- }
-
- if (service instanceof OperationsConfigurator) {
- OperationsConfigurator operationsConfigurator = (OperationsConfigurator)service;
- for (ConfiguredOperation cop : operationsConfigurator.getConfiguredOperations()) {
- if (cop!= null && cop.getName() != null && cop.getName().equals(op.getName())) {
- for (PolicySet ps : cop.getApplicablePolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof LDAPRealmAuthenticationPolicy) {
- polices.add((LDAPRealmAuthenticationPolicy)p);
- }
- }
- }
- }
- }
- }
-
- List<PolicySet> policySets = service.getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof LDAPRealmAuthenticationPolicy) {
- polices.add((LDAPRealmAuthenticationPolicy)p);
- }
- }
- }
- }
-
- return polices;
- }
-
- /**
- * Find applicable authorization policySets
- * It first check if any explicitly policySet was identified
- * Otherwise it look into the list of applicablePolicySets
- * @param op
- * @return
- */
- private List<AuthorizationPolicy> findAuthorizationPolicies(Operation op) {
- List<AuthorizationPolicy> polices = new ArrayList<AuthorizationPolicy>();
-
- // check explicity added policies first
- ConfiguredOperation configuredOperation = findOperation(op);
- if (configuredOperation!= null && configuredOperation.getPolicySets().size() > 0) {
- for ( PolicySet ps : configuredOperation.getPolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof AuthorizationPolicy) {
- polices.add((AuthorizationPolicy)p);
- }
- }
- }
- }
-
- // otherwise find applicable policySets
- if ( polices.size() == 0) {
- // FIXME: How do we get a list of effective policySets for a given operation?
- for(Operation operation : operations) {
- if (operation!= null && operation.getName() != null && operation.getName().equals(op.getName())) {
- for (PolicySet ps : operation.getPolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof AuthorizationPolicy) {
- polices.add((AuthorizationPolicy)p);
- }
- }
- }
- }
- }
-
- if (service instanceof OperationsConfigurator) {
- OperationsConfigurator operationsConfigurator = (OperationsConfigurator)service;
- for (ConfiguredOperation cop : operationsConfigurator.getConfiguredOperations()) {
- if (cop != null && cop.getName() != null && cop.getName().equals(op.getName())) {
- for (PolicySet ps : cop.getApplicablePolicySets()) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof AuthorizationPolicy) {
- polices.add((AuthorizationPolicy)p);
- }
- }
- }
- }
- }
- }
-
- List<PolicySet> policySets = service.getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (p instanceof AuthorizationPolicy) {
- polices.add((AuthorizationPolicy)p);
- }
- }
- }
- }
-
- return polices;
- }
-
- /**
- * Find a given configured operation
- * @param operation
- * @return
- */
- private ConfiguredOperation findOperation(Operation operation) {
- ConfiguredOperation configuredOperation = null;
-
- for (ConfiguredOperation cOperation : ((OperationsConfigurator)component).getConfiguredOperations()) {
- if(cOperation.getName().equals(operation.getName())) {
- configuredOperation = cOperation;
- break;
- }
- }
-
- return configuredOperation;
- }
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/DefaultLDAPSecurityExtensionPoint.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/DefaultLDAPSecurityExtensionPoint.java
deleted file mode 100644
index b454289673..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/DefaultLDAPSecurityExtensionPoint.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http.extensibility;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
-import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.MonitorFactory;
-import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.Problem.Severity;
-
-
-/**
- * Default Extension point for LDAP Security Handlers
- *
- * @version $Rev$ $Date$
- */
-
-public class DefaultLDAPSecurityExtensionPoint implements LDAPSecurityHandlerExtensionPoint {
- private List<LDAPSecurityHandler> securityHandlers = new ArrayList<LDAPSecurityHandler>();
-
- private ExtensionPointRegistry extensionPoints;
- private Monitor monitor = null;
-
- private boolean loaded = false;
-
- public DefaultLDAPSecurityExtensionPoint(ExtensionPointRegistry extensionPoints) {
- this.extensionPoints = extensionPoints;
-
- UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
- MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
- if (monitorFactory != null) {
- this.monitor = monitorFactory.createMonitor();
- }
- }
-
-
- public void addLDAPSecurityHandler(LDAPSecurityHandler securityHandler) {
- securityHandlers.add(securityHandler);
- }
-
- public void removeLDAPSecurityHandler(LDAPSecurityHandler securityHandler) {
- securityHandlers.remove(securityHandler);
- }
-
- public List<LDAPSecurityHandler> getLDAPSecurityHandlers() {
- loadHandlers();
- return securityHandlers;
- }
-
-
- /**
- * Private Utility methods
- */
-
- /**
- * Report a exception.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem = monitor.createProblem(this.getClass().getName(), null, Severity.ERROR, model, message, ex);
- monitor.problem(problem);
- }
- }
-
- /**
- * Lazily load artifact processors registered in the extension point.
- */
- @SuppressWarnings("unchecked")
- private synchronized void loadHandlers() {
- if (loaded) {
- return;
- }
-
- // Get the proxy factories declarations
- Set<ServiceDeclaration> handlerDeclarations = null;
- try {
- handlerDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(LDAPSecurityHandler.class);
- } catch (IOException e) {
- IllegalStateException ie = new IllegalStateException(e);
- error("IllegalStateException", handlerDeclarations, ie);
- throw ie;
- }
-
- for (ServiceDeclaration processorDeclaration : handlerDeclarations) {
- // Create a factory, and register it
- LDAPSecurityHandler securityHandler = null;
- try {
- Class<LDAPSecurityHandler> securityHandlerClass = (Class<LDAPSecurityHandler>) processorDeclaration.loadClass();
-
- securityHandler = securityHandlerClass.newInstance();
-
- } catch (Exception e) {
- IllegalStateException ie = new IllegalStateException(e);
- error("IllegalStateException", securityHandler, ie);
- throw ie;
- }
-
- addLDAPSecurityHandler(securityHandler);
- }
-
- loaded = true;
- }
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/LDAPSecurityHandler.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/LDAPSecurityHandler.java
deleted file mode 100644
index bf64f8fa30..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/LDAPSecurityHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http.extensibility;
-
-import java.util.List;
-
-import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy;
-import org.apache.tuscany.sca.policy.security.http.LDAPRealmAuthenticationPolicy;
-
-public interface LDAPSecurityHandler {
-
- /**
- * The Http Service calls this method prior to servicing the specified request.
- * This method controls whether the request is processed in the normal manner
- * or an error is returned.
- *
- * If the request requires authentication and the Authorization header
- * in the request is missing or not acceptable, then this method should
- * set the WWW-Authenticate header in the response object, set the status
- * in the response object to Unauthorized(401) and return false.
- * See also RFC 2617: HTTP Authentication: Basic and Digest Access Authentication
- * (available at http://www.ietf.org/rfc/rfc2617.txt).
- *
- * If the request requires a secure connection and the getScheme method
- * in the request does not return 'https' or some other acceptable secure protocol,
- * then this method should set the status in the response object to Forbidden(403)
- * and return false.
- *
- * When this method returns false, the Http Service will send the response back to
- * the client, thereby completing the request. When this method returns true, the
- * Http Service will proceed with servicing the request.
- *
- * If the specified request has been authenticated, this method must set the
- * AUTHENTICATION_TYPE request attribute to the type of authentication used,
- * and the REMOTE_USER request attribute to the remote user
- * (request attributes are set using the setAttribute method on the request).
- * If this method does not perform any authentication, it must not set these attributes.
- *
- * @param msg
- * @return
- */
- void handleSecurity(Message msg,
- List<LDAPRealmAuthenticationPolicy> authenticationPolicies,
- List<AuthorizationPolicy> authorizationPolicies) throws javax.security.auth.login.LoginException;
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/LDAPSecurityHandlerExtensionPoint.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/LDAPSecurityHandlerExtensionPoint.java
deleted file mode 100644
index 73765c0a10..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/extensibility/LDAPSecurityHandlerExtensionPoint.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http.extensibility;
-
-import java.util.List;
-
-/**
- * Extension point for LDAP Security Handlers
- *
- * @version $Rev$ $Date$
- */
-public interface LDAPSecurityHandlerExtensionPoint {
-
- /**
- * Add a LDAP security handler
- * @param securityHandler
- */
- void addLDAPSecurityHandler (LDAPSecurityHandler securityHandler);
-
- /**
- * Remove a LDAP security handler
- * @param securityHandler
- */
- void removeLDAPSecurityHandler (LDAPSecurityHandler securityHandler);
-
- /**
- * Return a list of security handlers
- * @return
- */
- List<LDAPSecurityHandler> getLDAPSecurityHandlers();
-
-
-}
diff --git a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/util/HttpSecurityUtil.java b/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/util/HttpSecurityUtil.java
deleted file mode 100644
index 88b2ee9fce..0000000000
--- a/sca-java-1.x/tags/1.5.1-RC4/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/util/HttpSecurityUtil.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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.tuscany.sca.policy.security.http.util;
-
-import java.util.StringTokenizer;
-
-import javax.security.auth.Subject;
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.codec.binary.Base64;
-import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.policy.authentication.basic.BasicAuthenticationPrincipal;
-
-/**
- *
- * @version $Rev$ $Date$
- */
-public class HttpSecurityUtil {
-
- /**
- * Check if Authorization header is available
- * @param request
- * @param response
- * @return
- */
- public static boolean hasAuthorizationHeader(HttpServletRequest request) {
- boolean result = false;
- if(request.getHeader("Authorization") != null) {
- result = true;
- }
-
- return result;
- }
-
- /**
- *
- * @param request
- * @param response
- * @return
- */
- public static String getAuthorizationHeader(HttpServletRequest request) {
- return request.getHeader("Authorization");
- }
-
- public static Subject getSubject(Message msg){
-
- Subject subject = null;
- HttpServletRequest request = null;
-
- for (Object header : msg.getHeaders()){
- if (header instanceof Subject){
- subject = (Subject)header;
- break;
- } else if( header instanceof HttpServletRequest) {
- request = (HttpServletRequest) header;
- }
- }
-
- //if there is no subject, but request is available
- //try to build a subject from authorization header
- if (subject == null & request != null) {
- if ( hasAuthorizationHeader(request)) {
- subject = getSubject(getAuthorizationHeader(request));
- }
-
- }
- if (subject == null){
- subject = new Subject();
- msg.getHeaders().add(subject);
- }
-
- return subject;
-
- }
-
- public static Subject getSubject(String httpAuthorizationHeader){
-
-
- // get the security context
- Subject subject = new Subject();
- String user = null;
- String password = null;
-
- if (httpAuthorizationHeader != null) {
- StringTokenizer tokens = new StringTokenizer(httpAuthorizationHeader);
- if (tokens.hasMoreTokens()) {
- String basic = tokens.nextToken();
- if (basic.equalsIgnoreCase("Basic")) {
- String credentials = tokens.nextToken();
- String userAndPassword = new String(Base64.decodeBase64(credentials.getBytes()));
- int colon = userAndPassword.indexOf(":");
- if (colon != -1) {
- user = userAndPassword.substring(0, colon);
- password = userAndPassword.substring(colon + 1);
- }
- }
- }
- }
-
- if(user != null && password != null) {
- BasicAuthenticationPrincipal principal = new BasicAuthenticationPrincipal(user, password);
- subject.getPrincipals().add(principal);
- }
-
- return subject;
- }
-}