我们接着上一篇博客SSM+springSecurity实现简单的认证来实现自定义登录页面,成功与失败返回的数据、控制权限等功能
一:自定义登录页面
1.自创建登录页面
login.jsp文件代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录</title>
</head>
<body>
<%-- ${pageContext.request.contextPath}/login 其实是指向了springsecurity自己的登录页面,从而实现认证--%>
<form action="${pageContext.request.contextPath}/login" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password">
<input type="submit" value="登录">
</form>
</body>
</html>
2. 修改springSecurity配置文件
在其中加入<security:form-login login-page="/login"/>配置,定位登录页面的地址。
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-4.2.xsd">
<!-- security:http :spring过滤器链配置可以配置如下:
1)需要拦截什么资源
2)什么资源什么角色权限
3)定义认证方式:HttpBasic、Fromlogin(*)
4)定义登录页面,定义登录请求地址,定义错误处理方式
-->
<security:http>
<!-- pattern: 需要拦截的资源
access:拦截方式
isFullyAuthenticated()该资源需要认证才可以访问
isAnonymous:匿名用户(未登录)才可以访问,已经登录的无法访问
permitAll:所有用户(不管是否登录)都可以访问
hasRole:拥有什么角色才可以访问
-->
<security:intercept-url pattern="/u