url拦截配置

--32次检阅--作者:admin
package com.ruixin.common.security;
import java.io.IOException;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import com.ruixin.bean.Role;
import com.ruixin.bean.User;
import com.ruixin.util.UserUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter;
import org.springframework.stereotype.Component;

/**
 * 连接权限管理类
 */
@Component("urlPermissionsFilter")
public class URLPermissionsFilter extends PermissionsAuthorizationFilter{

    @Override
    public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException {
        String curUrl = getRequestUrl(request);
        if(StringUtils.endsWithAny(curUrl, ".js",".css",".html",".jsp")
                || StringUtils.endsWithAny(curUrl, ".jpg",".png",".gif", ".jpeg")) {
            return true;
        }

       User user=UserUtils.getUser();
       if(user==null||(user!=null&&user.getRoles()==null)){
           return false;
       }
       for (Role role:user.getRoles()){
            if(curUrl.contains(role.getName())){
               return true;
           }
        }
        return false;
    }

    /**
     * 获取当前URL+Parameter
     * @author lance
     * @since  2014年12月18日 下午3:09:26
     * @param request  拦截请求request
     * @return       返回完整URL
     */
    private String getRequestUrl(ServletRequest request) {
        HttpServletRequest req = (HttpServletRequest)request;
        String queryString = req.getQueryString();
        queryString = StringUtils.isBlank(queryString)?"": "?"+queryString;
        return req.getRequestURI()+queryString;
    }
}


评论
     o(╥﹏╥)o,暂无相关评论!快来添加第一条评论吧。。。
哎呀呀,登陆后才能发表评论哦~
登录/注册