gpt4 book ai didi

java - Spring Security 过滤掉所有情况

转载 作者:行者123 更新时间:2023-12-01 12:21:53 26 4
gpt4 key购买 nike

我在一个两页的基本网站上有以下安全配置。

<http use-expressions="true">
<intercept-url pattern="/login*" access="permitAll" />
<intercept-url pattern="/resources/**" access="permitAll" />
<intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')" />
<form-login login-page='/login.jsp'
default-target-url="/index.jsp"
username-parameter="name"
password-parameter="password"/>
</http>

<authentication-manager>
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="user" password="user" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>

我没有使用自定义 Controller ,仅使用默认的 spring View 分辨率。

<mvc:annotation-driven />
<mvc:resources location="/resources/" mapping="/resources/**"/>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>

当我尝试访问默认页面 index.jsp 时,它会按照我的预期将我重定向到 login.jsp 页面,但是当我输入它不会将我发送到 index.jsp 页面,而是将我再次重定向到 login.jsp。表单字段使用 name 进行定义,如安全配置中所示,表单 actionindex.jsp

我的login.jsp表单:

<form method="post" action="<c:url value = '/index.jsp' />">
<label for="inputEmail3">User</label>
<input name="name" type="text" id="inputEmail3" placeholder="User name" required>

<label for="inputPassword3">Password</label>
<input name="password" type="password" id="inputPassword3" placeholder="Password" required>
<button type="submit" class="btn btn-success btn-sm">Sign in</button>
<button type="reset" class="btn btn-default btn-sm">Reset</button>
</form>

我错过了什么?

最佳答案

Spring security 使用过滤器,包括表单登录。默认情况下,当需要对用户进行身份验证时,DefaultLoginPageGenerateFilter 会生成一个包含 HTML 表单的页面,但您也可以提供自己的表单。

然后UsernamePasswordAuthenticationFilter拦截表单的提交,默认在URLj_spring_security_check上,并且表单应该使用POST或spring security will提交(默认情况下) )抛出异常。

您应该使用专用 URL 来提交登录表单。如果您不喜欢j_spring_security_check,您可以使用login-processing-url form-login 属性更改它,但它不应该相同作为成功 URL。

关于java - Spring Security 过滤掉所有情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26608383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com