项目简介 基于Spring Cloud 的项目,Spring Cloud是在Spring Boot上搭建的所以按照Spring Boot的方式来写 Spring Security 配置 继承 WebSecurityConfigurerAdapter ,重写configure(HttpSecurity http)配置相关权限以及重写拦截器 http.authorizeRequests() .antMatchers(“/auth/**”).permitAll() .anyRequest().authenticated().and() //证书 认证 自动登陆 .addFilterBefore(authTokenFilter, UsernamePasswordAuthenticationFilter.class) //登陆以及权限控制Filter …… ; 自定义UsernamePasswordAuthenticationFilter 自定义 UsernamePasswordAuthenticationFilter 实现自动登陆 创建Authentication 模拟登陆 Authentication authentication = new UsernamePasswordAuthenticationToken(auth, token); SecurityContextHolder.getContext().setAuthentication(authentication);; 自定义FilterSecurityInterceptor Spring Security 是通过这个过滤器来实现 Http资源安全过滤的。 获取资源权限 FilterSecurityInterceptor继承自 AbstractSecurityInterceptor ,源码中的其中beforeInvocation方法的一段代码是: Collection<ConfigAttribute> attributes = this.obtainSecurityMetadataSource() .getAttributes(object); 这个方法是来获取资源权限 ,可以重写SecurityMetadataSource obtainSecurityMetadataSource(){}方法来实现,传入一个FilterInvocation对象,返回一个Collection<ConfigAttribute>对象。 …
Read more “Spring Security 自定义 登陆 权限验证”