Pārlūkot izejas kodu

Various mods to heavyduty app

Luke Taylor 17 gadi atpakaļ
vecāks
revīzija
b99a5dec29

+ 54 - 0
sandbox/heavyduty/jetty-jmx.xml

@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+
+<!-- =============================================================== -->
+<!-- Configure the JVM JMX Server                                    -->
+<!-- this configuration file should be used in combination with      -->
+<!-- other configuration files.  e.g.                                -->
+<!--    java -jar start.jar etc/jetty-jmx.xml etc/jetty.xml          -->
+<!-- See jetty-jmx-mx4j.xml for a non JVM server solution            -->
+<!-- =============================================================== -->
+<Configure id="Server" class="org.mortbay.jetty.Server">
+
+    <!-- =========================================================== -->
+    <!-- Initialize platform mbean server                            -->
+    <!-- =========================================================== -->
+    <!-- Create an MBeanServer or use the jdk 1.5 platformMBeanServer -->
+    <Call id="MBeanServer" class="java.lang.management.ManagementFactory" name="getPlatformMBeanServer"/>
+    
+    <!-- =========================================================== -->
+    <!-- Initialize mx4j mbean server                                -->
+    <!-- =========================================================== -->
+    <!-- replace platform config with
+    <Call id="MBeanServer" class="javax.management.MBeanServerFactory" name="createMBeanServer"/>
+    -->
+    
+    <!-- initialize the Jetty MBean container -->
+    <Get id="Container" name="container">
+      <Call name="addEventListener">
+        <Arg>
+          <New class="org.mortbay.management.MBeanContainer">
+            <Arg><Ref id="MBeanServer"/></Arg>
+            <!-- Set name="managementPort">8082</Set -->
+            <Call name="start" />
+          </New>
+        </Arg>
+      </Call>
+    </Get>
+    
+    <!-- optionally add a remote JMX connector 
+    <Call id="jmxConnector" class="javax.management.remote.JMXConnectorServerFactory" name="newJMXConnectorServer">
+      <Arg>
+        <New  class="javax.management.remote.JMXServiceURL">
+          <Arg>service:jmx:rmi:///jndi/rmi:///jettymbeanserver</Arg>
+        </New>
+      </Arg>
+      <Arg/>
+      <Arg><Ref id="MBeanServer"/></Arg>
+      <Call name="start"/>
+    </Call>
+    -->
+    
+</Configure>
+

+ 28 - 4
sandbox/heavyduty/pom.xml

@@ -4,7 +4,7 @@
     <artifactId>spring-security-heavyduty</artifactId>
     <name>Spring Security - Heavy Duty Sample</name>
     <packaging>war</packaging>
-    <version>2.0.3-SNAPSHOT</version>
+    <version>2.0.4-SNAPSHOT</version>
     <dependencies>
         <dependency>
             <groupId>org.springframework.security</groupId>
@@ -30,7 +30,7 @@
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
             <version>${spring.version}</version>
-        </dependency>        
+        </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
@@ -111,6 +111,29 @@
             <scope>runtime</scope>
             <version>1.1.2</version>            
         </dependency>
+        <dependency>
+            <groupId>org.apache.directory.server</groupId>
+            <artifactId>apacheds-core</artifactId>
+            <version>1.0.2</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.directory.server</groupId>
+            <artifactId>apacheds-server-jndi</artifactId>
+            <version>1.0.2</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>1.4.3</version>
+            <scope>runtime</scope>
+        </dependency>       
+        <dependency>
+            <groupId>org.springframework.ldap</groupId>
+            <artifactId>spring-ldap</artifactId>
+            <version>1.2.1</version>
+        </dependency>        
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
@@ -144,6 +167,7 @@
                 <version>6.1.7</version>
                 <configuration>
                     <contextPath>/heavyduty</contextPath>
+                    <!--jettyConfig>jetty-jmx.xml</jettyConfig-->
                     <connectors>
                         <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                             <port>8080</port>
@@ -165,8 +189,8 @@
         </plugins>
     </build>
     <properties>        
-        <spring.version>2.5.4</spring.version>
-        <spring.security.version>2.0.3-SNAPSHOT</spring.security.version>
+        <spring.version>2.5.5</spring.version>
+        <spring.security.version>2.0.4-SNAPSHOT</spring.security.version>
     </properties>
 
 </project>

+ 72 - 59
sandbox/heavyduty/src/main/webapp/WEB-INF/appContext-security.xml

@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  - Sample namespace-based configuration
-  -
-  - $Id: applicationContext-security-ns.xml 2923 2008-04-12 17:17:46Z luke_t $
-  -->
-
-<b:beans xmlns="http://www.springframework.org/schema/security"
-    xmlns:b="http://www.springframework.org/schema/beans"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.2.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
 
-    <b:import resource="appContext-misc.xml"/>
-    
+<!--
+  - Sample namespace-based configuration
+  -
+  - $Id: applicationContext-security-ns.xml 2923 2008-04-12 17:17:46Z luke_t $
+  -->
+
+<b:beans xmlns="http://www.springframework.org/schema/security"
+    xmlns:b="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.2.xsd">
+
+    <!--b:import resource="appContext-misc.xml"/-->
+    
 	<!-- global-method-security secured-annotations="enabled" access-decision-manager-ref="methodAccessMgr"/ -->
 	
 	<b:bean id="methodAccessmanager" class="org.springframework.security.vote.AffirmativeBased">
@@ -24,30 +24,30 @@
 	   </b:property>
 	</b:bean>
     
-    <!-- http entry-point-ref='customEntryPoint'-->
-    <http>
-        <intercept-url pattern="/secure/extreme/**" access="ROLE_SUPERVISOR"/>
+    <http>
+        <intercept-url pattern="/secure/extreme/**" access="ROLE_SUPERVISOR"/>
         <intercept-url pattern="/secure/**" access="IS_AUTHENTICATED_REMEMBERED" />
-        <intercept-url pattern="/testMulti.htm*" access="IS_AUTHENTICATED_FULLY" />        
-		<!-- Disable web URI authorization, as we're using <global-method-security> and have @Secured the services layer instead
-        <intercept-url pattern="/listAccounts.html" access="IS_AUTHENTICATED_REMEMBERED" />
-        <intercept-url pattern="/post.html" access="ROLE_TELLER" />
-        -->
-        <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
-<!--
-    Uncomment to enable X509 client authentication support
-        <x509 user-service-ref="daoUserService"/>
--->
-        <!-- form-login default-target-url="/secure/index.jsp" login-page="/login.jsp" authentication-failure-url="/login.jsp?login-error=1" always-use-default-target="false"/-->
-        <anonymous />
-        <http-basic />
+        <intercept-url pattern="/testMulti.htm*" access="IS_AUTHENTICATED_FULLY" />        
+		<!-- Disable web URI authorization, as we're using <global-method-security> and have @Secured the services layer instead
+        <intercept-url pattern="/listAccounts.html" access="IS_AUTHENTICATED_REMEMBERED" />
+        <intercept-url pattern="/post.html" access="ROLE_TELLER" />
+        -->
+        <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
+<!--
+    Uncomment to enable X509 client authentication support
+        <x509 user-service-ref="daoUserService"/>
+-->
+        <form-login default-target-url="/secure/index.jsp" login-page="/login.jsp" authentication-failure-url="/login.jsp?login-error=1" always-use-default-target="false"/>
+        <anonymous />
+        <!-- http-basic / -->
         <logout />
-        <remember-me key='doesntmatter' token-repository-ref='tokenRepo' user-service-ref='daoUserService'/>
-<!--          <remember-me user-service-ref="daoUserService"/> -->
-
-        <!-- Uncomment to limit the number of sessions a user can have -->
+        <remember-me key='doesntmatter' token-repository-ref='tokenRepo' user-service-ref='daoUserService'/>
+
+<!--          <remember-me user-service-ref="daoUserService"/> -->
+
+        <!-- Uncomment to limit the number of sessions a user can have -->
         <concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="true" session-registry-ref='sessionRegistry'/>
-        
+        
     </http>
 
     <authentication-manager alias="authenticationManager" />
@@ -66,42 +66,55 @@
     </b:bean>
  -->    
     <b:bean id='sessionRegistry' class="org.springframework.security.concurrent.SessionRegistryImpl"/>
-<!-- 
+<!--
     <b:bean id="customAuthFilter" class="heavyduty.security.ui.HeavyDutyAuthenticationProcessingFilter">
         <custom-filter position="AUTHENTICATION_PROCESSING_FILTER"/>
         <b:property name="defaultTargetUrl" value="/"/>
         <b:property name="authenticationManager" ref="authenticationManager"/>
     </b:bean>
- -->    
-    <b:bean id="customEntryPoint" class="heavyduty.security.ui.HeavyDutyEntryPoint"> 
+
+    <b:bean id="customEntryPoint" class="heavyduty.security.ui.HeavyDutyEntryPoint">
         <b:property name="loginFormUrl" value="/login.jsp"/>
     </b:bean>
+-->    
 <!--     
     <b:bean id="loginPageGenerator" class="org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter">
         <custom-filter after="AUTHENTICATION_PROCESSING_FILTER"/>
         <b:constructor-arg ref="customAuthFilter"/>
-    </b:bean>
- -->
-    <!--
-    Usernames/Passwords are
-        rod/koala
-        dianne/emu
-        scott/wombat
-        peter/opal
-    -->
+    </b:bean>
+ -->
     
 	<authentication-provider user-service-ref="daoUserService">
 	    <password-encoder hash="md5" />
 	</authentication-provider>
-
-    <authentication-provider>
-        <password-encoder hash="md5"/>
-        <user-service>
-            <user name="rod" password="a564de63c2d0da68cf47586ee05984d7" authorities="ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER" />
-	        <user name="dianne" password="65d15fe9156f9c4bbffd98085992a44e" authorities="ROLE_USER,ROLE_TELLER" />
-            <user name="scott" password="2b58af6dddbd072ed27ffc86725d7d3a" authorities="ROLE_USER" />
-            <user name="peter" password="22b5c9accc6e1ba628cedc63a72d57f8" authorities="ROLE_USER" />
-	    </user-service>
-	</authentication-provider>
-
+
+    <authentication-provider>
+        <password-encoder hash="md5"/>
+        <user-service>
+            <user name="rod" password="a564de63c2d0da68cf47586ee05984d7" authorities="ROLE_SUPERVISOR, ROLE_USER, ROLE_TELLER" />
+	        <user name="dianne" password="65d15fe9156f9c4bbffd98085992a44e" authorities="ROLE_USER,ROLE_TELLER" />
+            <user name="scott" password="2b58af6dddbd072ed27ffc86725d7d3a" authorities="ROLE_USER" />
+            <user name="peter" password="22b5c9accc6e1ba628cedc63a72d57f8" authorities="ROLE_USER" />
+	    </user-service>
+	</authentication-provider>
+	
+	<ldap-server id="ldapServer"/>
+
+    <!-- b:bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"/ -->
+
+	<b:bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
+	    <b:property name="beans">
+	      <b:map>
+	        <b:entry key="bean:name=ldapContextSource" value-ref="ldapServer"/>
+	      </b:map>
+	    </b:property>
+	    <b:property name="assembler">
+	      <b:bean class="org.springframework.jmx.export.assembler.MethodNameBasedMBeanInfoAssembler">
+	        <b:property name="managedMethods" value="setPassword,setUserDn,getUrls,setUrl,setUrls,setPooled,isPooled,setBase,getBaseLdapPathAsString"/>
+	      </b:bean>
+	    </b:property>	    
+	    <!-- b:property name="server" ref="mbeanServer"/-->
+	</b:bean>
+	
+
 </b:beans>

+ 0 - 0
sandbox/heavyduty/src/main/webapp/WEB-INF/classes/database/heavyduty


+ 1 - 1
sandbox/heavyduty/src/main/webapp/WEB-INF/classes/jdbc.properties

@@ -3,6 +3,6 @@ jpa.generateDdl=true
 jpa.showSql=true
 
 jdbc.driver=org.hsqldb.jdbcDriver
-jdbc.url=jdbc:hsqldb:mem:.
+jdbc.url=jdbc:hsqldb:res:/database/heavyduty
 jdbc.username=sa
 jdbc.password=

+ 1 - 0
sandbox/heavyduty/src/main/webapp/WEB-INF/classes/log4j.properties

@@ -2,6 +2,7 @@
 log4j.rootLogger=DEBUG, stdout
 
 log4j.logger.org.springframework.security=DEBUG, stdout
+log4j.logger.org.apache.directory=INFO, stdout
 
 # Console output...
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender