java - 简单的 Spring Security 要求

标签 java spring spring-security

我已阅读 http://docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#ns-minimal 中的文档

我不需要这里的角色,也不需要任何数据库。这份文件对于我的要求来说太多了。我只想通过登录页面对用户进行身份验证。用户成功通过身份验证后,我将创建一个 cookie。所有传入的请求都会被检查是否有有效的 cookie。

我的想法:将有一个过滤器检查每个传入的请求,并且如果 cookie 过期,将有一个入口点将用户重定向到登录页面。

但是我不知道将这些简单的需求与 spring security 集成......或者我应该使用其他东西吗?

最佳答案

如果您使用 Java Config,那么 Spring Security 配置将如下所示:

@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private YourSpecificProvider provider; //simply wraps your API calls

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/css/**", "/js/**", "/fonts/**", "/images/**").permitAll() //add whatever else needs to be served without authentication
                .anyRequest().authenticated();
        http
                .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
                .logout()
                .logoutUrl("/logout")
                .logoutSuccessUrl("/login");
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.authenticationProvider(provider);
    }
}

通过该设置,Spring Security 将自动处理添加 cookie/检查 cookie/重定向等所有必要步骤。 您当然必须在 /login

处提供登录页面

根据您使用 Spring 的方式,您需要将 Spring Security 添加到 Servlet 过滤器链

关于java - 简单的 Spring Security 要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24178127/

相关文章:

java - 网络驱动程序 : Automated Code Generation without using Selenium IDE

java - 顶点 3 : Undeploy verticles which are running in different JVM instance

java - 适用于 OSX 的 Java 7 的 plugin.jar 在哪里

java - Windows Powershell 在运行 jboss 7.1.1 时经常挂起

java - 有条件 :action in spring

java - 如何在Postman中添加spring security参数?

session - 登录页面使用 SSL,未加密的页面看不到加密的 session cookie(Grails、Acegi)

java - 从 jsp 中的 ModelAndView 检索模型

java - OnetoOne 关系案例中的唯一行。如何防止重复?

spring-security - 将Dropwizard与Spring Security集成