在 这里是本文源码Gitee地址, 示例的基础上,我们进行修改,增加 Shiro 注解的使用。
在 [com.erbadagang.springboot.shiro.controller
]包路径下,创建 [DemoController]类,提供示例 API 接口。代码如下:
package com.erbadagang.springboot.shiro.controller;
import org.apache.shiro.authz.annotation.RequiresGuest;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/demo")
public class DemoController {
@RequiresGuest
@GetMapping("/echo")
public String demo() {
return "示例返回";
}
@GetMapping("/home")
public String home() {
return "我是首页";
}
@RequiresRoles("ADMIN")
@GetMapping("/admin")
public String admin() {
return "我是管理员";
}
@RequiresRoles("NORMAL")
@GetMapping("/normal")
public String normal() {
return "我是普通用户";
}
}
按照如上的说明,进行各种测试。例如说,去访问 http://localhost:8080/demo/admin
接口,提示登录,登录「normal/normal」用户后,会返回无权限的提示。