diff options
Diffstat (limited to 'sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp')
6 files changed, 229 insertions, 0 deletions
diff --git a/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/META-INF/sca-contribution.xml b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..41c84c9a44 --- /dev/null +++ b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0" + xmlns:store="http://store"> + <deployable composite="store:store"/> +</contribution>
\ No newline at end of file diff --git a/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/WEB-INF/geronimo-web.xml b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/WEB-INF/geronimo-web.xml new file mode 100644 index 0000000000..705010bf7c --- /dev/null +++ b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/WEB-INF/geronimo-web.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<web:web-app + xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" + xmlns:client="http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0" + xmlns:conn="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2" + xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2" + xmlns:lc="http://geronimo.apache.org/xml/ns/loginconfig-2.0" + xmlns:ejb="http://openejb.apache.org/xml/ns/openejb-jar-2.2" + xmlns:name="http://geronimo.apache.org/xml/ns/naming-1.2" + xmlns:pers="http://java.sun.com/xml/ns/persistence" + xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1" + xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" + xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"> + <dep:environment> + <dep:moduleId> + <dep:groupId>org.apache.tuscany</dep:groupId> + <dep:artifactId>sample-store-secure-webapp</dep:artifactId> + <dep:version>1.0</dep:version> + <dep:type>car</dep:type> + </dep:moduleId> + <!-- TUSCANY-2622 --> + <dep:hidden-classes> + <dep:filter>org.apache.axiom</dep:filter> + <dep:filter>org.apache.axis2</dep:filter> + <dep:filter>org.apache.commons</dep:filter> + <dep:filter>org.jdom</dep:filter> + </dep:hidden-classes> + </dep:environment> + + <web:context-root>/sample-store-secure-webapp</web:context-root> + + <web:security-realm-name>ldap-realm</web:security-realm-name> + <sec:security> + <sec:role-mappings> + <!-- + <sec:role role-name="manager"> + <sec:principal name="lmanager" class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" /> + </sec:role> + <sec:role role-name="user"> + <sec:principal name="lresende" class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal" /> + </sec:role> + --> + <sec:role role-name="manager"> + <sec:principal name="managers" class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal" designated-run-as="true"/> + </sec:role> + </sec:role-mappings> + </sec:security> + + <dep:gbean name="ldap-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm"> + <dep:attribute name="realmName">ldap-realm</dep:attribute> + <dep:xml-reference name="LoginModuleConfiguration"> + <lc:login-config> + <lc:login-module control-flag="REQUIRED" wrap-principals="false"> + <lc:login-domain-name>ldap-realm</lc:login-domain-name> + <lc:login-module-class>org.apache.geronimo.security.realm.providers.LDAPLoginModule</lc:login-module-class> + <!-- lc:option name="users">foo,bar</lc:option--> + <lc:option name="initialContextFactory">com.sun.jndi.ldap.LdapCtxFactory</lc:option> + <lc:option name="connectionURL">ldap://dpev007.innovate.ibm.com:389</lc:option> + <lc:option name="connectionUsername">cn=ldaproot,dc=tnc,dc=org</lc:option> + <lc:option name="connectionPassword">ldappass</lc:option> + <lc:option name="authentication">simple</lc:option> + <lc:option name="userBase">ou=people,dc=tnc,dc=org</lc:option> + <lc:option name="userSearchMatching">uid={0}</lc:option> + <lc:option name="userSearchSubtree">false</lc:option> + <lc:option name="roleBase">ou=groups,dc=tnc,dc=org</lc:option> + <lc:option name="roleName">cn</lc:option> + <lc:option name="roleSearchMatching">(member={0})</lc:option> + <lc:option name="roleSearchSubtree">false</lc:option> + </lc:login-module> + </lc:login-config> + </dep:xml-reference> + </dep:gbean> +</web:web-app> diff --git a/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/WEB-INF/web.xml b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..704c7631b0 --- /dev/null +++ b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> + <display-name>sample-store-secure-webapp</display-name> + + <filter> + <filter-name>tuscany</filter-name> + <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class> + </filter> + + <filter-mapping> + <filter-name>tuscany</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + <welcome-file-list id="WelcomeFileList"> + <welcome-file>store.html</welcome-file> + </welcome-file-list> + + <!-- login-config> + <auth-method>BASIC</auth-method> + <realm-name>ldap-realm</realm-name> + </login-config--> + + <login-config> + <auth-method>FORM</auth-method> + <realm-name>ldap-realm</realm-name> + <form-login-config> + <form-login-page>/auth/logon.html</form-login-page> + <form-error-page>/auth/logonError.html</form-error-page> + </form-login-config> + </login-config> + + <security-role> + <description>Application managers</description> + <role-name>manager</role-name> + </security-role> + + <security-role> + <description>Application users</description> + <role-name>user</role-name> + </security-role> + + <security-constraint> + <web-resource-collection> + <web-resource-name>Areas with authentication required</web-resource-name> + <url-pattern>/protected/*</url-pattern> + <http-method>GET</http-method> + <http-method>POST</http-method> + </web-resource-collection> + <auth-constraint> + <role-name>manager</role-name> + </auth-constraint> + </security-constraint> + + <env-entry> + <env-entry-name>org.apache.tuscany.sca.contribution.processor.ValidationSchemaExtensionPoint.enabled</env-entry-name> + <env-entry-type>java.lang.String</env-entry-type> + <env-entry-value>false</env-entry-value> + </env-entry> +</web-app>
\ No newline at end of file diff --git a/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/auth/logon.html b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/auth/logon.html new file mode 100644 index 0000000000..09191f7010 --- /dev/null +++ b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/auth/logon.html @@ -0,0 +1,20 @@ +<HTML> +<H1>Store Authentication</H1> +<form method="POST" action="j_security_check"> +<table border="0" cellspacing="2" cellpadding="1"> +<tr> + <td>Username:</td> + <td><input size="12" value="" name="j_username" maxlength="25" type="text"></td> +</tr> +<tr> + <td>Password:</td> + <td><input size="12" value="" name="j_password" maxlength="25" type="password"></td> +</tr> +<tr> + <td colspan="2" align="center"> + <input name="submit" type="submit" value="Login"> + </td> +</tr> +</table> +</form> +</HTML>
\ No newline at end of file diff --git a/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/auth/logonError.html b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/auth/logonError.html new file mode 100644 index 0000000000..c0c0f7b75d --- /dev/null +++ b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/auth/logonError.html @@ -0,0 +1,5 @@ +<HTML> +<H1>Store Authentication ERROR</H1> +Username, password or role incorrect. + +</HTML>
\ No newline at end of file diff --git a/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/store.html b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/store.html new file mode 100644 index 0000000000..e4cd0ba12d --- /dev/null +++ b/sandbox/lresende/sca-1.x/samples/store-secure-webapp/src/main/webapp/store.html @@ -0,0 +1,48 @@ +<html> +<head> +<title>Store</title> + +<script type="text/javascript" src="dojo/dojo/dojo.js"></script> + +<script type="text/javascript"> + dojo.require("dojo.rpc.JsonService"); +</script> + +<script language="JavaScript"> + + var catalog = new dojo.rpc.JsonService("Catalog?smd"); + + var catalogItems; + + function catalog_getResponse(items) { + var catalog = ""; + for (var i=0; i<items.length; i++) { + var item = items[i].name + ' - ' + items[i].price; + catalog += '<input name="items" type="checkbox" value="' + + item + '">' + item + ' <br>'; + } + document.getElementById('catalog').innerHTML=catalog; + catalogItems = items; + } + + function init() { + catalog.get().addCallback(catalog_getResponse); + } + +</script> + +</head> + +<body onload="init()"> +<h1>Store</h1> + <div id="store"> + <h2>Catalog</h2> + <form name="catalogForm"> + <div id="catalog" ></div> + <br> + </form> + + <br> + </div> +</body> +</html> |