java - Spring 安全 HttpSecurity

标签 java spring maven spring-mvc spring-security

我正在遵循此处的 Spring Security 指南,http://docs.spring.io/spring-security/site/docs/3.2.0.RELEASE/reference/htmlsingle/#jc-httpsecurity

我已将这些设置在我的 pom.xml

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>3.2.0.RELEASE</version>
    </dependency>

在我的安全配置类中

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

我有

protected void configure(HttpSecurity http) throws Exception {
  http
    .authorizeRequests()
        .anyRequest().authenticated()
        .and()
    .formLogin()
        .loginPage("/login") 
        .permitAll();        
}

HttpSecurity有方法 formLogin ,但另一个调用以 authorizeRequests() 开头返回类型
org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer<org.springframework.security.config.annotation.web.builders.HttpSecurity>.ExpressionInterceptUrlRegistry没有方法 formLogin不再了。

知道我哪里出错了吗?

最佳答案

尝试更改顺序,使表单登录配置排在第一位:

protected void configure(HttpSecurity http) throws Exception {
  http
    .formLogin()
        .loginPage("/login") 
        .permitAll()
        .and()
    .authorizeRequests()
        .anyRequest()
        .authenticated();
}

编辑:将“.and”更改为“.and()”

关于java - Spring 安全 HttpSecurity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21117890/

相关文章:

java - Apache Java FTP 客户端不会在某些服务器上切换到二进制传输模式

java - 为 OpenTSDB 编写收集器

spring - 如何在 batch-int :job-launching-gateway? 中运行异步批处理作业

java - 我可以创建 spring mvc 自定义验证注释而不链接到 validator 实现吗

java - 从 java 代码运行脚本 shell

java - 根据微调器选择显示其他数据

javascript - 尝试将 React/Ajax 调用与 Spring MVC 和 Thymeleaf 结合使用

java - 无法获取公共(public)无参数构造函数

java - Maven 依赖项已下载但在项目内部无法识别

Maven,如何只打包更改的文件?