shiro 和webservice cxf版权限控制解决方案

shiro 和webservice cxf版权限控制解决方案说明:1:webservice 是无状态的,所以每次登陆要求传入用户名和密码2:由于涉及 每次都要登陆和验证,如果接口频繁调用就会形成数据库压力过大, 需要用到缓存3:本教程用到springAOP需要一定基础**基础解决方案:(原理,不推荐使用)**1:在每一个接口类里面直接调用login方法,然后进行授权验证方法(如is...
摘要由CSDN通过智能技术生成

shiro 和webservice cxf版权限控制解决方案

说明:
1:webservice 是无状态的,所以每次登陆要求传入用户名和密码
2:由于涉及 每次都要登陆和验证,如果接口频繁调用就会形成数据库压力过大, 需要用到缓存
3:本教程用到springAOP需要一定基础
**

基础解决方案:(原理,不推荐使用)

**
1:在每一个接口类里面直接调用login方法,然后进行授权验证方法(如isPermitted)
在这里插入图片描述
2:开启认证模式缓存(不然会每次登陆就进入数据库认证数据库请求太频繁,授权方法缓存也获取不到)

在这里插入图片描述
3:到这来就可以调用接口了(说明:Realm是还是用的原来web网站realm,不要定义多个Realm)
最终解决方案(推荐):
问题:
一个系统Webservice接口方法有很多,如果每个接口都写接口权限验证的代码会造成代码冗余,耦合性高。
使用spring AOP 注解 解决 就像 shiro注解一样
直接上代码
1:自定义BaseMessage父类 消息类(用于接口提示 成功 错误等消息)

/**
 * 权限基类
 * 
 * @author lw冒冒
 */
public class BaseMessage {
   
    //代码
    private int code;
    //成功或错误信息
    private String message;
    //详细描述
    private String detail;

    public int getCode() {
   
        return code;
    }

    public void setCode(int code) {
   
        this.code = code;
    }

    public String getMessage() {
   
        return message;
    }

    public void setMessage(String message) {
   
        this.message = message;
    }

    public String getDetail() {
   
        return detail;
    }

    public void setDetail(String detail) {
   
        this.detail = detail;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值