gpt4 book ai didi

java - 扩展 spring security UsernamePasswordAuthenticationFilter

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

我正在尝试扩展 UsernamePasswordAuthenticationFilter,如本教程所示:http://blog.awnry.com/post/16183749439/two-factor-authentication-and-spring-security-3

这是我的 security.xml:

<security:http use-expressions="true" auto-config="false"
entry-point-ref="loginUrlAuthenticationEntryPoint">

<security:custom-filter position="FORM_LOGIN_FILTER"
ref="twoFactorAuthenticationFilter" />

<security:intercept-url pattern="/**"
access="isAuthenticated()" />


<security:logout logout-url="/player/logout"
success-handler-ref="playerLogoutSuccessHandler" />

</security:http>

<bean id="loginUrlAuthenticationEntryPoint"
class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">
<property name="loginFormUrl" value="/demo/player/login" />
</bean>

<bean id="twoFactorAuthenticationFilter"
class="com.XXX.filter.TwoFactorAuthenticationFilter">
<property name="authenticationManager" ref="authenticationManager" />
<property name="authenticationFailureHandler" ref="failureHandler" />
<property name="authenticationSuccessHandler" ref="playerAuthenticationSuccessHandler" />
<property name="filterProcessesUrl" value="/processLogin" />
<property name="postOnly" value="true" />
<property name="extraParameter" value="domain" />
</bean>


<bean id="failureHandler"
class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
<property name="defaultFailureUrl" value="/login?login_error=true" />
</bean>

<bean id="bCryptPasswordEncoder"
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />



<security:authentication-manager
alias="authenticationManager">
<security:authentication-provider
ref="authenticationProvider">
</security:authentication-provider>
</security:authentication-manager>
</beans>

当我到达需要注册的页面时,会出现我的自定义登录信息,但提交时不会附加任何内容。

我的登录:

<body>
<form method="post" action="http://localhost:8080/XXX/j_spring_security_check">
<div id="passwordLoginOption" class="form">
<div class="row">
<div class="label left">
<label for="j_username">login:</label>
</div>
<div class="right">
<div class="textWrapper">
<input type="text" name="j_username"/>
</div>
</div>
<div class="cl"></div>
</div>
<div class="row">
<div class="label left">
<label for="j_password">password:</label>
</div>
<div class="right">
<div class="textWrapper">
<input type="password" name="j_password"/>
</div>
</div>
<div class="cl"></div>
</div>
<div class="row">
<div class="label left">
<label for="brand">brand:</label>
</div>
<div class="right">
<div class="textWrapper">
<input type="text" name="brand"/>
</div>
</div>
<div class="cl"></div>
</div>
<div class="buttons">
<input type="submit" value="Login"/>
</div>
</div>
</form>
</body>

想法?

最佳答案

您已经指定了filterProcessesUrl,因此您的登录表单需要提交给它。具体来说,您应该使用类似以下内容的内容:

<form method="post" action="/XXX/filterProcessesUrl">

当然,理想情况下您不会对上下文根进行硬编码。如果您使用 JSP,则可以使用 <c:url>标记自动包含上下文根。

关于java - 扩展 spring security UsernamePasswordAuthenticationFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21723759/

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