java - Spring boot 中的安全属性

标签 java spring spring-boot spring-security jwt

尝试使用 JWT(JSON Web token )创建具有用户身份验证的应用程序。但是,当我开始配置 WebSecurityConfig.java 时,我遇到了下一个问题:

@Override
protected void configure(HttpSecurity http) throws Exception {
    String[] permited = new String[security.getIgnored().size()];
    security.getIgnored().toArray(permited);

    http
            .csrf().disable()
            .exceptionHandling().authenticationEntryPoint(authenticationEntryPoint).and()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
            .authorizeRequests()
                .antMatchers("/api/authenticate").permitAll()
                .antMatchers("/api/user").permitAll()
                .antMatchers("/").permitAll()
                .antMatchers("/favicon.ico").permitAll()
                .anyRequest().authenticated()
            .and()
                .formLogin()
                .loginProcessingUrl("/api/authentication")
                .successHandler(ajaxAuthenticationSuccessHandler)
                .failureHandler(ajaxAuthenticationFailureHandler)
                .usernameParameter("username")
                .passwordParameter("password")
            .and()
                .logout()
                .logoutUrl("/api/logout")
                .logoutSuccessHandler(ajaxLogoutSuccessHandler)
                .invalidateHttpSession(true)
                .deleteCookies("JSESSIONID");

    http.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
    http.headers().cacheControl();
}

它向我显示“无法解析方法 getIgnored()”。这只是此方法开始时的几个步骤。

我了解到 Spring 有 2 个同名的类:

1) https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/security/SecurityProperties.html

2) https://docs.spring.io/spring-boot/docs/2.0.0.M3/api/org/springframework/boot/autoconfigure/security/SecurityProperties.html

所以我需要第二个类中的 getIgnored() 方法。请帮助我完成这个过程。我知道这可能是一个愚蠢的问题,但我感谢任何帮助。

顺便说一句,这就是我如何使用 @Autowired 注释定义“安全性”:

@Autowired
SecurityProperties security;

最佳答案

嗯,这不是两个不同的类,而是不同版本的相同。

getIgnored 方法已被删除,请参阅 Github commit

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

相关文章:

java - 语法错误 : insert } to complete ClassBody

java - 如何在java中通过引用复制和反序列化对象列表?

spring - 安全上下文持有者线程安全吗

java - 将函数引用作为参数传递

java - 改善 JBoss 5 慢启动

java - 认识 Java EE 项目

java - 多个删除的 REST 架构?

eclipse - spring boot 使用 springloaded 在 gradle 中没有工作

java - Spring Boot 多模块 考虑在配置中定义一个 type 的 bean

java - 在 Spring Boot 应用程序的 WebSocketConfigurer 中使用 @PathParam(javax.websocket.server.PathParam)