返回介绍

6.3 安全配置模块

发布于 2025-04-26 13:26:34 字数 1785 浏览 0 评论 0 收藏

安全配置模块集成了 SSO 客户端的安全策略配置和权限管理功能,可以供使用 SSO 的客户端使用。代码清单 6-4 是客户端的安全策略配置,其中,注解 @EnableO-Auth2Sso 将应用标注为一个 SSO 客户端,重载的 configure 方法使用了 HttpSecurity 来配置一些安全管理策略。注意这里没有登录链接的配置,因为登录认证的功能已经交给 OAuth2 处理了。另外,CustomFilterSecurityInterceptor 设定了使用自定义的权限管理过滤器,这个功能还是与第 5 章的设计一样,这里不再赘述。

代码清单 6-4 客户端安全策略配置

@Configuration
@EnableOAuth2Sso
@EnableConfigurationProperties(SecuritySettings.class)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Autowired
    private AuthenticationManager authenticationManager;
    @Autowired
    private SecuritySettings settings;
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http
                .antMatcher("/**").authorizeRequests()
                .antMatchers(settings.getPermitall().split(",")).permitAll()
                .anyRequest().authenticated()
                .and().csrf().requireCsrfProtectionMatcher(csrfSecurityRequest
Matcher())
                .csrfTokenRepository(csrfTokenRepository()).and()
                .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class)
                .logout().logoutUrl("/logout").permitAll()
                .logoutSuccessUrl(settings.getLogoutsuccssurl())
                .and()
                .exceptionHandling().accessDeniedPage(settings.getDeniedpage());
}
@Bean
public CustomFilterSecurityInterceptor customFilter() throws Exception{
        CustomFilterSecurityInterceptor customFilter = new CustomFilterSecurity
Interceptor();
        customFilter.setSecurityMetadataSource(securityMetadataSource());
        customFilter.setAccessDecisionManager(accessDecisionManager());
        customFilter.setAuthenticationManager(authenticationManager);
        return customFilter;
    }
    ......
}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。