SpringSecurity入门demo(四)授权

一、授权demo:

1、资源权限:

@RequestMapping("/menu")
@RestController
public class MenuManageController {
    @RequestMapping("/test")
    public String test(){
        return "这是菜单管理";
    }
}


@RequestMapping("/role")
@RestController
public class RoleManageController {
    @RequestMapping("/test")
    public String test(){
        return "这是角色管理";
    }
}


@RequestMapping("/school")
@RestController
public class SchoolManageController {
    @RequestMapping("/test")
    public String test(){
        return "这是学校管理";
    }
}


@RequestMapping("/user")
@RestController
public class UserController {
    @RequestMapping("/test")
    public String test(){
        return "这是user test";
    }
}

2、资源权限控制:在配置文件的configure(HttpSecurity http)验证规则方法中添加权限控制:

这里用的是hasAuthority / hasAnyAuthority,资源匹配,也可以使用角色匹配。

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{

    /**
     * 设置 HTTP 验证规则
     * @param http
     * @throws Exception
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception{
        http.authorizeRequests().
                antMatchers("/school/**").hasAuthority("school_manage").
                antMatchers("/menu/**").hasAnyAuthority("menu_manage","role_manage").
                antMatchers("/role/**").hasAuthority("role_manage").
                antMatchers("/user/**").permitAll().
                anyRequest().authenticated().
                and().formLogin();
    }
}

3、身份认证

4、授权:

最后启动项目测试:

(1)无需权限校验,如这里/user/**接口,访问localhost:8089/securityDemo/user/test无需登陆直接返回接口信息;

(2)

你可能感兴趣的:(java)