java – Spring Security permitAll()不允许匿名访问
发布时间:2020-12-14 05:07:56 所属栏目:Java 来源:网络整理
导读:我有一个方法,我想允许匿名和身份验证访问. 我使用Spring Security 3.2.4与基于java的配置. 重写的配置方法(在我的自定义配置类扩展WebSecurityConfigurerAdapter)中具有以下http块: http .addFilterBefore(muiltpartFilter,ChannelProcessingFilter.class)
我有一个方法,我想允许匿名和身份验证访问.
我使用Spring Security 3.2.4与基于java的配置. 重写的配置方法(在我的自定义配置类扩展WebSecurityConfigurerAdapter)中具有以下http块: http .addFilterBefore(muiltpartFilter,ChannelProcessingFilter.class) .addFilterBefore(cf,ChannelProcessingFilter.class) .authorizeRequests() .anyRequest() .authenticated() .and() .authorizeRequests() .antMatchers("/ping**") .permitAll() .and() .formLogin() .loginPage("/login") .permitAll() .and() .logout() .logoutUrl("/logout") .logoutSuccessUrl("/login"); ping请求处理程序和方法在一个还包含登录处理程序的控制器中,并且没有单独的@PreAuthorize或其他可能导致问题的注释. 问题是匿名访问被拒绝,用户被重定向到登录页面. 在调试级别登录时,我会看到Spring Security提供的以下反馈信息: [2014-07-11 13:18:04,483] [DEBUG] [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Secure object: FilterInvocation: URL: /ping; Attributes: [authenticated] [2014-07-11 13:18:04,483] [DEBUG] [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Previously Authenticated: org.springframework.security.authentication.AnonymousAuthenticationToken@6faad796: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@ffffa64e: RemoteIpAddress: 192.168.2.128; SessionId: 0EF6B13BBA5F00C020FF9C35A6E3FBA9; Granted Authorities: ROLE_ANONYMOUS [2014-07-11 13:18:04,483] [DEBUG] [org.springframework.security.access.vote.AffirmativeBased] Voter: org.springframework.security.web.access.expression.WebExpressionVoter@123f2882,returned: -1 [2014-07-11 13:18:04,483] [DEBUG] [org.springframework.security.web.access.ExceptionTranslationFilter] Access is denied (user is anonymous); redirecting to authentication entry point 我想要完成的是具有可以在任何时候调用的方法,并且将发送一个回复,指示请求是否在登录的会话内. 解决方法
权限顺序很重要,它可以像我这样配置:
.authorizeRequests() .antMatchers("/ping**") .permitAll() .and() .authorizeRequests() .anyRequest() .authenticated() .and() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Spring executeFind方法:回调查询操作
- Collection对象无法显示在java,Arraylist,Collection中显示
- java – 理解regex if then语句
- 属性文件字符串长度限制(JAVA)
- java – Spring Mongo>如何从Aggregation获取列表Aggregati
- java编程下字符串的16位,32位md5加密实现方法
- java – 需要示例程序来抛出InterruptedException
- java – 在Android上的OpenGL上下文之间共享资源
- 注意重写类的equals()方法
- springboot 定时任务@Scheduled实现解析