Saturday, May 30, 2015

Spring Security login+with Spring MVC+mysql db



HomeController .java


  1. @Controller
  2. public class HomeController {
  3. static final Logger log=LoggerFactory.getLogger(HomeController.class.getName());
  4. @RequestMapping(value="/index",method = RequestMethod.GET)
  5. public String success(ModelMap map) {
  6. return "welcome";
  7. }



web.xml


  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  5. id="WebApp_ID" version="2.5">
  6. <display-name>SpringTiles</display-name>
  7. <welcome-file-list>
  8. <welcome-file>customLogin.jsp</welcome-file>
  9. </welcome-file-list>
  10. <servlet>
  11. <servlet-name>spring</servlet-name>
  12. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  13. <load-on-startup>1</load-on-startup>
  14. </servlet>
  15. <servlet-mapping>
  16. <servlet-name>spring</servlet-name>
  17. <url-pattern>*.html</url-pattern>
  18. </servlet-mapping>
  19. <context-param>
  20. <param-name>contextConfigLocation</param-name>
  21. <param-value>
  22.   /WEB-INF/spring-servlet.xml,
  23.   /WEB-INF/security-config.xml,

  24. </param-value>
  25. </context-param>

  26. <listener>
  27. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  28. </listener>

  29. <!-- Spring Security Configuration -->
  30. <filter>
  31. <filter-name>springSecurityFilterChain</filter-name>
  32. <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
  33. </filter>

  34. <filter-mapping>
  35. <filter-name>springSecurityFilterChain</filter-name>
  36. <url-pattern>/*</url-pattern>
  37. </filter-mapping>
  38. </web-app>


customLogin.jsp


  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  2. <html>
  3. <head>
  4. <title>Spring Security Login page</title>
  5. <script type="text/javascript">

  6. function validation(){
  7. var a = document.form.j_username.value;
  8. if(a==""){
  9. alert("Please Enter User Name");
  10. document.form.j_username.focus();
  11. return false;
  12. }
  13. if(!isNaN(a)){
  14. alert("Please Enter Only Characters");
  15. document.form.j_username.select();
  16. return false;
  17. }
  18. var a = document.form.j_password.value;
  19. if(a==""){
  20. alert("Please Enter Your Password");
  21. document.form.j_password.focus();
  22. return false;
  23. }
  24. if ((a.length < 4) || (a.length > 8)){
  25. alert("Your Password must be 4 to 8 numbers");
  26. document.form.j_password.select();
  27. return false;
  28. }
  29. }
  30. </script>
  31. </head>
  32. <body>
  33. <center>
  34. <br>
  35. <br>
  36. <h2>Custom Login Form</h2>
  37. <c:if test="${not empty SPRING_SECURITY_LAST_EXCEPTION}">
  38. <font color="red"> Your login attempt was not successful due
  39. to <br />
  40. <br /> <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" />.
  41. </font>
  42. </c:if>
  43. <form name='form' action='j_spring_security_check' onsubmit="return validation()"
  44. method='POST'>
  45. <table>
  46. <tr>
  47. <td>User Name:</td>
  48. <td><input type='text' name='j_username' value=''></td>
  49. </tr>
  50. <tr>
  51. <td>Password:</td>
  52. <td><input type='password' name='j_password' /></td>
  53. </tr>
  54. <tr>
  55. <td colspan='2'><input name="submit" type="submit"
  56. value="Login" /></td>
  57. </tr>
  58. </table>
  59. </form>
  60. </center>
  61. </body>
  62. </html>


spring-servlet.xml




  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  9. http://www.springframework.org/schema/mvc
  10. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

  11. <context:component-scan base-package="com.hps.platform.portal.controller" />
  12.  
  13. <bean id="viewResolver"
  14. class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  15. <property name="viewClass">
  16. <value>
  17. org.springframework.web.servlet.view.tiles2.TilesView
  18. </value>
  19. </property>  
  20. </bean>
  21. <bean id="multipartResolver"
  22. class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  23. <!-- max upload size in bytes -->
  24. <property name="maxUploadSize" value="20971520" /> <!-- 20MB -->

  25. <!-- max size of file in memory (in bytes) -->
  26. <property name="maxInMemorySize" value="1048576" /> <!-- 1MB -->
  27. </bean>

  28. <bean id="tilesConfigurer"
  29. class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
  30. <property name="definitions">
  31. <list>
  32. <value>/WEB-INF/tiles.xml</value>
  33. </list>
  34. </property>
  35. </bean>
  36. </beans>


spring-security.xml





  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans:beans xmlns="http://www.springframework.org/schema/security"
  3. xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5.            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  6.            http://www.springframework.org/schema/security
  7.            http://www.springframework.org/schema/security/spring-security-3.1.xsd">
  8. <http auto-config="true">
  9.    <intercept-url pattern="/customLogin.jsp" access="ROLE_ANONYMOUS" />
  10. <intercept-url pattern="/**" access="ROLE_USER" />
  11. <form-login login-page="/customLogin.jsp"
  12. default-target-url="/index.html"
  13. authentication-failure-url="/customLogin.jsp"/>
  14. </http> 
  15. <authentication-manager>
  16. <authentication-provider>
  17. <jdbc-user-service data-source-ref="dataSource"
  18. authorities-by-username-query="SELECT username, authority FROM authorities WHERE username = ?"
  19. users-by-username-query="SELECT username, password, enabled FROM users WHERE username = ?" />
  20. </authentication-provider>
  21. </authentication-manager>

  22. <beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
  23. destroy-method="close">
  24. <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
  25. <beans:property name="url" value="jdbc:mysql://localhost:3306/test" />
  26. <beans:property name="username" value="root" />
  27. <beans:property name="password" value="root" />
  28. </beans:bean>

  29. </beans:beans>



No comments:

Post a Comment