自定义登录页Spring安全性
您好,我是spring security的新手,我正在尝试为多个登录页面实现多身份验证管理器。但是我被卡住了,因为我无法创建自定义的登录页面。这是我的Security.xml自定义登录页Spring安全性,spring,spring-security,Spring,Spring Security,您好,我是spring security的新手,我正在尝试为多个登录页面实现多身份验证管理器。但是我被卡住了,因为我无法创建自定义的登录页面。这是我的Security.xml <http auto-config='true' use-expressions="true" authentication-manager-ref="customAuthenticationManager1" > <intercept-url pattern="/**" access="isAuthe
<http auto-config='true' use-expressions="true" authentication-manager-ref="customAuthenticationManager1" >
<intercept-url pattern="/**" access="isAuthenticated()" />
<form-login
login-page='/Admin_Login.jsp'
login-processing-url="/j_spring_security_check.action"
default-target-url="/home.jsp"
always-use-default-target="true"/>
<logout logout-success-url="/login.html" />
<logout />
</http>
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
我的登录页面如下:-
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>ADMIN LOGIN</title>
</head>
<body>
<form action="/j_spring_security_check" method="POST">
<label for="username">User Name:</label>
<input id="username" name="j_username" type="text"/>
<label for="password">Password:</label>
<input id="password" name="j_password" type="password"/>
<input type="submit" value="Log In"/>
</form>
</body>
</html>
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
管理员登录
用户名:
密码:
但当我尝试登录时,它不会进入身份验证管理器。它的给予
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
HTTP状态404-/j_-spring_-security_-check错误。因此,有人能告诉我哪里出了问题。您在web.xml中设置了spring安全过滤器了吗
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
要求
向前地
有两种选择
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
选项1:
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
从
标记中删除登录处理url
属性,因为默认url是/j\u spring\u security\u check
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
选项2:
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
将
登录处理url=“/j\u spring\u security\u check.action”
更改为登录处理url=“/j\u spring\u security\u check”
是的。我发现了我的错误,做了这个改变,它成功了,或者简单地说,OP使用了错误的URL。他指定了j_-spring\u-security\u-check.action
,但正在使用j_-spring\u-security\u-check
,就像他昨天在对另一个问题的评论中所说的那样。:)刚刚注意到他对其他答案的评论
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>