⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authorizationserviceimpl.java

📁 《JSP网站开发典型模块与实例精讲》一书光盘源码
💻 JAVA
字号:
package org.appfuse.util.security.service;

import org.appfuse.util.security.AuthorizationService;
import java.util.HashMap;
import org.appfuse.util.security.AppUser;
import org.appfuse.webapp.filter.AuthFilter;

public class AuthorizationServiceImpl implements AuthorizationService{
    public AuthorizationServiceImpl(){
    }

    /**
     * 获取地址中的资源URL
     * @param String requestURI
     * @return String resourceURL
     * @throws AppDAOException
     */
    private String getResourceURL(String requestURI){
        String resourceURL = "";
        int index = requestURI.indexOf(".do");
        int index1 = requestURI.lastIndexOf("/");
        if(index == -1){
            int index2 = requestURI.indexOf(".jsp");
            if(index2 != -1){
                resourceURL = requestURI.substring(index1 + 1,index2 + 4);
            }
        } else{
            resourceURL = requestURI.substring(index1 + 1,index + 3);
        }
        //System.out.println(resourceURL);
        return resourceURL;
    }

    /**
     * 获取地址中的操作名
     * @param String requestURI
     * @return String actionName
     * @throws AppDAOException
     */
  /*  private String getActionName(String requestURI){
        String actionName = "";
        int index = requestURI.indexOf(".do");
        if(index == -1){
            return null;
        }
        int index1 = requestURI.indexOf("action=");
        if(index1==-1)
            return null;
        String temp = requestURI.substring(index1 + 7,requestURI.length());
        for(int i = 0; i < temp.length(); i++){
            if(temp.charAt(i) == '&'){
                break;
            } else{
                actionName = actionName + temp.charAt(i);
            }
        }
        return actionName;
    }*/

    public boolean isUnprotectedResource(String requestURL){
        boolean isUnprotected = false;
        String resourceURL = getResourceURL(requestURL);
        for(int i = 0; i < AuthFilter.unProtectedRes.size(); i++){
            if(resourceURL.equals((String)AuthFilter.unProtectedRes.
                                  get(i))){
                isUnprotected = true;
                break; }
        }
        return isUnprotected;
    }

    public boolean checkRight(AppUser appUserInfo,String requestURL,String actionName){
        try{
            boolean haveRight = false;
            String resourceURL = getResourceURL(requestURL);
            for(int i = 0;
                        appUserInfo != null && i < appUserInfo.getRights().size();
                        i++){
                String url = (String)((HashMap)appUserInfo.getRights().get(i)).
                             get("url");
                String actName = (String)((HashMap)appUserInfo.getRights().get(
                    i)).get("actionName");
                if(resourceURL.equals(url) &&
                   ((actionName != null && actionName.equals(actName)) ||
                    (actionName == null && actName == null))){
                    haveRight = true;
                    break;
                }
            }
            return haveRight;
        }catch(Exception e){
            return false;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -