Tag: 春天安全

Spring Security,Method Security注解(@Secured)不工作(java config)

我正在尝试使用@Secured(“ADMIN”)(没有任何XML,只有java配置,Spring Boot)来设置方法安全注释。 但通过角色访问不起作用。 安全配置: @Configuration @EnableWebSecurity public class AppSecurityConfiguration extends WebSecurityConfigurerAdapter{ ….. @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/api/**").fullyAuthenticated().and() .addFilterBefore(tokenAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class); } ….. } 我想限制访问控制器的方法: @RestController @RequestMapping("/api/groups") public class GroupController { @Autowired private GroupService groupService; @Secured("ADMIN") @RequestMapping public List<Group> list() { return groupService.findAll(); } } 通过url限制访问正在工作,与: .antMatchers("/api/**").hasAuthority("ADMIN") 也许我忘了指定,我想限制的角色? UPD:按照规则,在控制层或服务层中的哪个层必须是@PreAuthorize("hasRole('ADMIN')") ?

使用@ExceptionHandler处理spring安全认证异常

我使用Spring MVC的@ControllerAdvice和@ExceptionHandler来处理REST API的所有异常。 它适用于web mvc控制器抛出的异常,但对于Spring安全自定义筛选器引发的异常无效,因为它们在调用控制器方法之前运行。 我有一个自定义的春季安全过滤器,执行基于令牌的身份验证: public class AegisAuthenticationFilter extends GenericFilterBean { … public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { try { … } catch(AuthenticationException authenticationException) { SecurityContextHolder.clearContext(); authenticationEntryPoint.commence(request, response, authenticationException); } } } 有了这个自定义的入口点: @Component("restAuthenticationEntryPoint") public class RestAuthenticationEntryPoint implements AuthenticationEntryPoint{ public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authenticationException) throws […]

如何修复与Spring安全代理的val字段初始化?

考虑kotlin控制器类: @RestController @RequestMapping("/myPath/") open class MyController { private val s3AsyncClient: S3AsyncClient = S3AsyncClient.builder().build() //… @PostMapping("/indexing") @Secured("ROLE_USER") fun someFunction() { return s3AsyncClient.toString(); } } 这导致NullPointerException。 这是我在调试器中看到的: 但是,当@Secured被删除一切正常。 所以春天的安全代理似乎破坏了kotlin val的初始化。 有没有办法让他们一起工作?

Reactive Spring 5安全性Kotlin的主要名称

我正在尝试将Reactive Spring Security示例( https://github.com/spring-tips/reactive-security/blob/master/src/main/java/com/example/securitydemo/SecurityDemoApplication.java )转换为Kotlin 。 这是我迄今为止: WebConfiguration.kt @Configuration class WebConfiguration { fun message(serverRequest: ServerRequest): Mono<ServerResponse> { val principalPublisher = serverRequest.principal().map { p -> "Hello, " + p.name + "!" } return ServerResponse.ok().body(principalPublisher.toMono()) } @Bean fun routes() = router { GET("/message") { ServerResponse.ok().body(message(it)) } } } SecurityConfiguration.kt @Configuration @EnableWebFluxSecurity class SecurityConfiguration { @Bean fun userDetailsRepository(): […]

Kotlin弹簧安全配置

从1.0.0-beta-242升级到Kotlin 1.0.0-beta-3595后,以下代码不能编译: @Throws(Exception::class) override fun configure(http: HttpSecurity) { http.addFilterBefore(AuthenticationFilter(authenticationManager()), BasicAuthenticationFilter::class.java) http.csrf().disable() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and().authorizeRequests() .antMatchers("/authorization/**", "/public/**").permitAll() .antMatchers("/**").authenticated() } 返回的错误是: SecurityAssembly.kt: (48, 65): Unresolved reference: permitAll 编辑: 来自流行的Spring Security框架的permitAll方法的签名是: public ExpressionInterceptUrlRegistry permitAll() { return access(permitAll); } 我错过了什么或者这是一个错误?