相关疑难解决方法(0)

Spring:如何将HttpServletRequest注入请求范围的bean?

我正在尝试在Spring中设置一个请求范围的bean.

我已成功设置它,因此每次请求都会创建一次bean.现在,它需要访问HttpServletRequest对象.

由于每次请求都会创建一次bean,因此我认为容器可以很容易地在我的bean中注入请求对象.我怎样才能做到这一点 ?

java spring servlets

93
推荐指数
3
解决办法
10万
查看次数

如何以编程方式使用Spring Security 3.1登录用户

在Spring和Spring Security 3.1中以特定用户名编程登录Web访问者的正确方法是什么?看起来我在2.5下做的方式已经改变了一点.我相信现在有更好的方法可以做到这一点.

基本上,当我创建一个新用户时,我还需要同时登录它们.

spring spring-mvc spring-security spring-3

11
推荐指数
1
解决办法
1万
查看次数

没有Spring安全性记住我以编程方式登录时创建的cookie

注册(注册)后,我通过Spring Security以编程方式登录我的用户:

public register(HttpServletRequest request, String user, String password) {
    ...
    request.login(user, password);
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但它不会创建记住我的cookie(尽管使用交互式登录可以很好地创建cookie).

现在我已经阅读了这个这个答案,你必须连接RememberMeServices(我使用PersistentTokenBasedRememberMeServices)的实现,然后调用onLoginSuccess.我没有成功自动装配PersistentTokenBasedRememberMeServices.

如何使这项工作?这是正确的方法吗?为什么Spring Security不提供更方便的方式?


PS:这是我配置的摘录:

@Configuration
@EnableWebSecurity
public class WebSecConf extends WebSecurityConfigurerAdapter {

    ...

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http
            .rememberMe()
                .tokenRepository(new MyPersistentTokenRepository())
                .rememberMeCookieName("rememberme")
                .tokenValiditySeconds(60 * 60 * 24) 
                .alwaysRemember(true)
                .useSecureCookie(true)
                .and()
            ....
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-security spring-social

5
推荐指数
1
解决办法
2481
查看次数