spring security 4.2.2 自定义登录界面

搭建基本环境

详情见 spring-security入门

项目目录结构如下:

项目目录结构

创建登录界面

在 webapp/ 下创建log.jsp,登陆表单代码如下:

<html>
    <body>
        <form action="j_spring_security_check" method="POST">
            <input type="text" name="username"  /> </br> 
            <input type="password" name="password" /> </br> 
            <input type="submit" value="submit" />
        </form>
    </body>
</html>

注意:

  • 表单提交到 j_spring_security_check
  • post 方法提交表单。
  • 用户名name使用 username
  • 用户密码name使用 password

修改spring-security配置文件security.xml

在security.xml文件中增加以下内容:

<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.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">

    <http pattern="/login.jsp" security="none" />
    <http auto-config="true" use-expressions="true">
        <intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
        <form-login 
            login-page="/login.jsp" 
            login-processing-url="/j_spring_security_check" 
            authentication-failure-url="/login.jsp"
            default-target-url="/index.jsp" />
        <csrf disabled="true" />
    </http>
    <user-service>
        <user name="user" password="password" authorities="ROLE_USER" />
    </user-service>
</b:beans>

注意:

  • <http pattern="/login.jsp" security="none" /> 表示对于 /login.jsp 不做权限过滤。

  • <intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> 表示具有ROLE_USER权限的用户才能访问全部路径。

  • <form-login /> 标签用于自定义登录界面。

1.  login-page="/login.jsp" 表示使用login.jsp代替默认登陆界面。 

2.  login-processing-url="/j_spring_security_check"  使用spring-security 4.x版本必须添加该属性,表示登录表单提交路径。

3.  authentication-failure-url="/login.jsp" 表示授权失败之后跳转到login.jsp界面。

4.  default-target-url="/index.jsp" 表示授权成功之后默认跳转到index.jsp界面。
  • <user /> 标签用于授权用户,属性name标志用户名,password标志用户密码,属性authorities用来标志该用户所有的权限。

发布项目

项目运行结果如下图:

登陆界面
登陆成功界面

源码

点击下载源码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容