Spring Security to a web application with md5 password encoder
- Required Maven Libraries:
- Configuration files:
- MD5 Password Encoder script(md5encoder.sh)
- User Profiles(profiles.properties)
- Spring context xml(security-app-context.xml)
- Web application xml(web.xml)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> </dependency> |
1 2 3 4 5 6 7 | #!/bin/bash ########################################################################## # Name : MD5 Password Encoder for PRISM API ########################################################################## echo "Please enter password to be encoded:" read md5pass echo -n $md5pass | md5sum | awk '{print $1}' |
1 2 3 | # Basic Authentication credentials in APP # Format is <username> = <md5encodedpassword>,<userRole>,<isUserEnabled> candy=5f4dcc3b5aa765d61d8327deb882cf99,ROLE_USER,enabled |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:security="http://www.springframework.org/schema/security" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> <security:http entry-point-ref="authenticationEntryPoint" use-expressions="true"> <security:intercept-url pattern="/**" access="hasAnyRole ( 'ROLE_USER')" /> <security:logout invalidate-session="true" delete-cookies="JSESSIONID,SPRING_SECURITY_REMEMBER_ME_COOKIE" /> <security:custom-filter ref="basicAuthenticationFilter" position="BASIC_AUTH_FILTER" /> </security:http> <bean id="basicAuthenticationFilter" class="org.springframework.security.web.authentication.www.BasicAuthenticationFilter"> <property name="authenticationManager" ref="authManager" /> <property name="authenticationEntryPoint" ref="authenticationEntryPoint" /> </bean> <bean id="authenticationEntryPoint" class="org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint"> <property name="realmName" value="PRISM" /> </bean> <bean id="md5encoder" class="org.springframework.security.authentication.encoding.Md5PasswordEncoder"> </bean> <security:authentication-manager alias="authManager"> <security:authentication-provider> <security:password-encoder ref="md5encoder" /> <security:user-service id="userDetailsService" properties="file:{path}/profiles.properties"/> </security:authentication-provider> </security:authentication-manager> </beans> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <context-param> <param-name>contextConfigLocation</param-name> <param-value>file:{path}/security-app-context.xml</param-value> </context-param> <!-- security start --> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- security end --> |