ROP是否支持和shiro整合?

dlcc2252 2016-08-06
ROP是否支持和shiro整合?或是怎么做权限控制?
我的一切有我 2016-08-28
ROP支持和shiro整合,首先写一个继承FormAuthenticationFilter的子类,添加一个
	public AuthenticationToken createToken(ServletRequest request){
		return createToken(request, null);
	}

方法,在rop框架的用户登录方法的类中注入上面定义的继承FormAuthenticationFilter的子类对象,在登录方法中使用以下代码
AuthenticationToken token = authenticatingFilter.createToken(request);
		Subject subject = SecurityUtils.getSubject();
		subject.login(token);
进行登录,注意登录方法的用户名密码的参数名要跟shiro的获取用户名、密码的参数名是一样。可通过一下代码将sessionId添加到ROP框架中
String sessionId = subject.getSession().getId().toString();
		SessionManager sessionManager = context.getSessionManager();
		sessionManager.addSession(sessionId, new SimpleSession());

继承DefaultWebSessionManager类,重写
protected Serializable getSessionId(ServletRequest request, ServletResponse response)
方法,使得shiro可以获取到ROP框架的sessionId
还需要定义一个线程变量摆渡类
/**
 * 线程摆渡重设Shiro框架的线程变量
 */
public class ShiroThreadFerry implements ThreadFerry {

	private Subject subject;
	
	@Override
	public void doInSrcThread() {
		subject = ThreadContext.getSubject();
	}

	@Override
	public void doInDestThread() {
		ThreadContext.bind(subject);
	}

}
wen_xudong7 2016-09-25
    /**
     * 服务方法是否向ISV开放
     * @param appKey
     * @param method
     * @param version is useless
     * @return
     */
    public boolean isAppGranted(String appKey, String method, String version){
//权限列表
List<String> list = select...(appKey,method,version);
if....

}

 

我的做法是实现rop本来的权限控制

Global site tag (gtag.js) - Google Analytics