zoukankan      html  css  js  c++  java
  • SpringSecurity自定义登陆页面和跳转页面

    如果我们不用form-login说明登陆界面,springsecurity框架将自动为我们生成登陆界面

    现在我们不想用自动生成的登陆界面了,而想使用自定义的漂亮的登陆界面

    则需要使用<security:form-login/>标签

    login-page:指定登陆页面

    login-process-url:表单提交的地址

    password-parameter:表示登录时密码使用的是哪个参数,默认是 “j_password

    username-parameter:表示登录时用户名使用的是哪个参数,默认是 “j_username

    default-target-url:登陆成功以后跳转的页面,用该元素时,需设置always-use-default=true

    authentication-failure:登陆失败以后跳转的页面

    登陆成功和登陆失败也可以专门写一个类,在类中指定跳转的界面,然后配置一个bean通过ref指定对应处理页面的bean,因为我觉得过于复杂,没有采用这种方法,这里也就提一下有这种方法

    具体的springsecurity配置文件如下:

     1 <beans xmlns="http://www.springframework.org/schema/beans"
     2        xmlns:security="http://www.springframework.org/schema/security"
     3        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.1.xsd
     6           http://www.springframework.org/schema/security
     7           http://www.springframework.org/schema/security/spring-security-3.1.xsd">
     8 
     9         <!--
    10         自定义表单,通过form-login标签
    11         authentication-failure-url指定登陆失败以后应该跳转的页面
    12         default-target-url指定登陆成功以后跳转的页面,默认的是index.jsp页面
    13         -->
    14     <security:http auto-config="true">
    15         <security:form-login login-page="/login.jsp"
    16                              login-processing-url="/login.do" username-parameter="username"
    17                              password-parameter="password"
    18                              default-target-url="/successful.jsp"
    19                              authentication-failure-url="/login_failure.jsp"
    20                              always-use-default-target="true"
    21         />
    22         <!-- 表示匿名用户可以访问 -->
    23         <security:intercept-url pattern="/login*.jsp*"
    24                                 access="IS_AUTHENTICATED_ANONYMOUSLY" />
    25         <security:intercept-url pattern="/**" access="ROLE_USER" />
    26     </security:http>
    27 
    28     <security:authentication-manager>
    29         <security:authentication-provider>
    30             <security:user-service>
    31                 <security:user name="user" password="user" authorities="ROLE_USER"/>
    32                 <security:user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN"/>
    33             </security:user-service>
    34         </security:authentication-provider>
    35     </security:authentication-manager>
    36 
    37 </beans>

    我们需要给login.jsp放行,不然我们将不能访问到,放行有两种方法,我选择的是将access设置为“IS_AUTHENTICATED_ANONYMOUSLY”,当然也可以设置为  “ROLE_ANONYMOUS

    另外一种是将security设置为none,具体代码如下:

    1  <security:http security="none" pattern="/login.jsp" />
    2    <security:http auto-config="true">
    3       <security:form-login login-page="/login.jsp"
    4          login-processing-url="/login.do" username-parameter="username"
    5          password-parameter="password" />
    6       <security:intercept-url pattern="/**" access="ROLE_USER" />
    7    </security:http>
  • 相关阅读:
    五:bean
    android学习笔记1:对应用进行单元测试
    二:spring的运行原理图:
    奇偶效验码和海明码
    python3输出素数
    关于项目流程
    php操作Mysql 以及封装常用的函数 用外连接连接3个表的案例
    一些列类型还有属性
    查询五子句
    实现注册功能
  • 原文地址:https://www.cnblogs.com/Hdaydayup/p/6810069.html
Copyright © 2011-2022 走看看