配置权限策略

在企业管理系统平台中,会拆分成n多个不同的账号,
每个账号对应不同的接口访问权限,
比如 
账号leonkt_admin 所有接口都可以访问;
leonkt_add账户 只能访问/addMember接口;
leonkt_show账户 只能访问/showMember接口;
leonkt_del账户 只能访问/delMember接口;
 

相关config配置


@Component
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    /**
     * 新增授权账户
     *
     * @param auth
     * @throws Exception
     */
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        /**
         * 新增一个账户leonkt 密码也是为leonkt 可以允许访问所有的请求
         */
//        auth.inMemoryAuthentication().withUser("leonkt").password("leonkt").authorities("leonkt");
        /**
         * 1.新增leonkt_admin leonkt_admin 权限可以访问所有请求
         */
        auth.inMemoryAuthentication().withUser("leonkt_admin").password("leonkt_admin").authorities("addMember", "delMember"
                , "updateMember", "showMember");
        auth.inMemoryAuthentication().withUser("leonkt_admin").password("leonkt_admin").authorities("addMember"
                , "delMember", "updateMember", "showMember");
        auth.inMemoryAuthentication().withUser("leonkt_add").password("leonkt_add").authorities("addMember");
        auth.inMemoryAuthentication().withUser("leonkt_del").password("leonkt_del").authorities("delMember");
        auth.inMemoryAuthentication().withUser("leonkt_update").password("leonkt_update").authorities("updateMember");
        auth.inMemoryAuthentication().withUser("leonkt_show").password("leonkt_show").authorities("showMember");
    }

    /**
     * 新增 HttpSecurity配置
     *
     * @param http
     * @throws Exception
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {
//        /**
//         * 拦截 http 安全认证模式 设置为httpBasic模式
//         */
//        http.authorizeRequests().antMatchers("/**").fullyAuthenticated()
//                .and().httpBasic();
        /**
         * 拦截 http 安全认证模式 设置为formLogin模式
         */
//        http.authorizeRequests().antMatchers("/**").fullyAuthenticated()
//                .and().formLogin();

        http.authorizeRequests().antMatchers("/addMember").hasAnyAuthority("addMember")
                .antMatchers("/delMember").hasAnyAuthority("delMember")
                .antMatchers("/updateMember").hasAnyAuthority("updateMember")
                .antMatchers("/showMember").hasAnyAuthority("showMember").
                antMatchers("/**").fullyAuthenticated()
                .and().formLogin();


    }

    @Bean
    public static NoOpPasswordEncoder passwordEncoder() {
        return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
    }
}

http://127.0.0.1:8080/updateMember

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值