我正在研究一些Spring Security教程并试图在没有xml的情况下实现它们,我似乎无法找到有关替换默认UsernamePasswordAuthenticationFilter的任何内容.
与此问题类似,我想从登录表单中检索一个额外的参数.我遇到困难的地方是:
<custom-filter ref="customAuthenticationProcessingFilter" position="FORM_LOGIN_FILTER"/>
Run Code Online (Sandbox Code Playgroud)
为了正确设置,我需要从AuthenticationManagerBuilder构建下来吗?还是我错过了什么?
我有一个登录页面,用户需要在其中输入以下信息VIN号码,电子邮件,邮政编码和accessCode,他们将从不同的应用程序中获取.
因此,要验证用户,我需要自定义UserDetailsService类中的所有信息,然后将调用一个过程来验证用户.
但是当我实现UserDetailsService下面这样的时候,我看到了
@Component
public class LoginService implements UserDetailsService {
@Autowired
LoginStoredProcedureDao loginStoredProcedureDao;
public Map<String, Object> verifyLogin(LoginDetails details) {
return loginStoredProcedureDao.verifyLogin(details);
}
@Override
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException {
// TODO Auto-generated method stub
//verifyLogin();
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
loginDetails对象如下所示
public class LoginDetails {
String vin;
String email;
String zipcode;
String accessCode;
}
Run Code Online (Sandbox Code Playgroud)
在上述情况下如何使用弹簧安全.在这里,用户需要提供所有信息以验证他自己.
我想要做的是在我的登录页面上读取一个http参数,例如login.html?param=value,然后传递value给我的AuthenticationProvider.我的想法是以某种方式保存value在一个隐藏的参数,但我仍然不知道如何传递它.这可能吗?我该怎么做呢?
编辑:根据Sanath的建议,在做了一些阅读后,我终于能够解决问题了 - 如果你对我是怎么做的话,请看下面.
我想将一些带有登录详细信息的参数传递给spring安全性,例如一些item id.然后我想根据用户类型重定向到页面.为此我使用自定义过滤器发送附加参数.并重定向我使用authentication-success-handler-ref.我的问题是,我正在使用我的职位冲突以及自定义过滤器.请帮我完成任务.
这是我的配置
<http use-expressions="true">
<intercept-url pattern="/login" access="permitAll" />
<intercept-url pattern="/resources/**" access="permitAll" />
<intercept-url pattern="/logout" access="permitAll" />
<intercept-url pattern="/accessdenied" access="permitAll" />
<custom-filter ref="ddAuthenticationFilter" position="FORM_LOGIN_FILTER" />
<form-login authentication-failure-url="/accessdenied"
authentication-success-handler-ref="ddAuthenticationSuccessHandler"/>
</http>
<beans:bean id="ddAuthenticationFilter" class="com.dd.security.ExUsernamePasswordAuthenticationFilter"/>
<beans:bean id="ddAuthenticationSuccessHandler" class="com.dd.security.DDAuthenticationSuccessHandler" />
Run Code Online (Sandbox Code Playgroud)