SpringSecurity授权

用户页面登录及未登录,简单角色权限区分

1.在继承WebSecurityConfigurerAdapter的类中定义操作所需的权限

  http.formLogin()                                 //表单登录
            .....                                  //登录配置
            .and()
        .authorizeRequests()                       //下面是授权的配置
            .antMatchers(
                .....     
            	.....)                                  
            	.permitAll()                        //以上请求不需要登录,任何人都有权限访问
            .antMatchers("/user").hasRole("ADMIN")  //只有拥有admin角色用户有权访问该路径,可以指定HttpMethod
            .anyRequest()                           
            .authenticated();                       //需要身份认证(登录即可访问其他任何请求)
            .and()
        .csrf().disable()                       	//关闭跨站请求伪造防护

2.在UserDetailsService的实现类中的SocialUser对象的参数中添加权限标识

	private SocialUserDetails buildUser(String userId) {
		// 根据用户名查找用户信息,包含对应的权限信息
		....
		// 添加权限标识
		return new SocialUser(userId, password,
				true, true, true, true,
				AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_ADMIN"));
	}

3.SpringSecurity权限表达式

表达式说明
hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀)
hasAnyRole([role1,role2])用户拥有任意一个制定的角色时返回true
hasAuthority([authority])等同于hasRole,但不会带有ROLE_前缀
hasAnyAuthority([auth1,auth2])等同于hasAnyRole
permitAll永远返回true
denyAll永远返回false
authentication当前登录用户的authentication对象
fullAuthenticated当前用户既不是anonymous也不是rememberMe用户时返回true
hasIpAddress(‘192.168.1.0/24’))请求发送的IP匹配时返回true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值