大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

P2P后臺管理系統

P2P后臺管理系統功能權限

需求

用戶有這個權限,才能訪問這個功能,例如

? 債權用戶

有 合同管理 查看權限 http://localhost:9600/p2p-admin/admin/contract

沒有 輪播圖 查看權限 http://localhost:9600/p2p-admin/admin/slideShow

? 市場用戶

沒有 合同管理 查看權限 http://localhost:9600/p2p-admin/admin/contract

有 輪播圖 查看權限 http://localhost:9600/p2p-admin/admin/slideShow

實現思路

? 用戶登錄成功后,會將用戶擁有的權限獲得

? 當用戶訪問某一個功能的時候,會發起對應的url請求

? 使用攔截器對請求進行攔截

? 在攔截器中,從用戶擁有的權限中,判斷是否包含該請求的URL,如果包含繼續訪問,否則沒有權限

⒈在16-p2p-admin中創建SlideShowController類,并提供slideShow方法,接收跳轉到輪播圖頁面的請求

@Controller
public class SlideShowController {
    @RequestMapping("/admin/slideShow")
    public String slideShow(){
        return "slideShow";
    }
}

⒉在16-p2p-admin中創建ContractController類,并提供contract方法,接收跳轉合同頁面的請求

Controller
public class ContractController {
    @RequestMapping("/admin/contract")
    public String contract(){
        return "contract";
    }
}

⒊拷貝profile.jsp,命名為slideShow.jsp,修改paga-content的div里面的內容為輪播圖列表(模擬)

<div class="page-content">
   <h1>輪播圖列表</h1>
</div>

⒋拷貝profile.jsp,命名為contract.jsp,修改paga-content的div里面的內容為輪播圖列表(模擬)

<div class="page-content">
   <h1>合同列表</h1>
</div>

⒌在16-p2p-admin的com.bjpowernode.p2p.admin.interceptor包下創建PermissionInterceptor類,并重寫preHandle方法

public class PermissionInterceptor implements HandlerInterceptor{
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
                             Object handler) throws Exception {
        //獲取用戶在頁面上請求的URI  /項目上下文/admin/contract
        String requestURI = request.getRequestURI();
        //從session獲取用戶
        UserInfo userInfo = (UserInfo) request.getSession().getAttribute(Constants.SESSION_USER);
        //獲取用戶擁有的菜單權限
        List<PermissionInfo> menuPermissionInfoList = userInfo.getMenuPermissionInfoList();
        //獲取用戶擁有的功能權限
        List<PermissionInfo> buttonPermissionInfoList = userInfo.getButtonPermissionInfoList();
        //對用戶擁有的菜單權限進行遍歷
        for (PermissionInfo permissionInfo : menuPermissionInfoList) {
            //用戶擁有的菜單權限對應的URL   /admin/contract
            String url = permissionInfo.getUrl();
            //如果菜單權限URL不為空,并且用戶請求的URI包含用戶擁有的url,說明有訪問該請求的權限,繼續訪問
            if (StringUtils.isNotEmpty(url) && requestURI.indexOf(url) >=0){
                return true;
            }
        }
        //對用戶擁有的功能權限進行遍歷
        for (PermissionInfo permissionInfo : buttonPermissionInfoList) {
            //用戶擁有的按鈕權限對應的URL   /admin/contract
            String url = permissionInfo.getUrl();
            //如果按鈕權限URL不為空,并且用戶請求的URI包含用戶擁有的url,說明有訪問該請求的權限,繼續訪問
            if (StringUtils.isNotEmpty(url) && requestURI.indexOf(url) >=0){
                return true;
            }
        }

        //如果執行到這里,說明沒有訪問該請求的權限,不在繼續訪問,重定向到提示頁面
        response.sendRedirect(request.getContextPath() +"/admin/refuse");
        return false;
    }
}

⒍在IndexController中添加refuse方法,跳轉到沒有權限提示頁面

/**
 * 跳轉到權限不足提示頁面
 */
@RequestMapping("/admin/refuse")
public String refuse(){
    return "refuse";
}

⒎拷貝contract.jsp,命名為refuse.jsp,修改paga-content的div里面的內容為權限不足,無法訪問

<div class="page-content">
   <h1>權限不足,無法訪問</h1>
</div>

⒏為了讓攔截器生效,需要攔截器配置類,在16-p2p-admin的com.bjpowernode.p2p.admin.config包下創建WebMVCConfig類

@Configuration
public class WebMVCConfig implements WebMvcConfigurer {
   @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //要攔截的路徑
        String[] patterns = {
                "/**"
        };
        //不需要權限攔截的url,也就是公共url,任何用戶登錄后都可以訪問
        String[] excludePathPatternsForPermission = {
                "/admin/login",
                "/admin/logout",
                "/admin/profile",
                "/",
                "/admin/refuse",
                "/assets/**",
                "/js/**"
        };
        //權限攔截器
        registry.addInterceptor(new PermissionInterceptor()).addPathPatterns(patterns)
                .excludePathPatterns(excludePathPatternsForPermission);
    }
}

⒐登錄不同的用戶,訪問用戶沒有權限的功能進行測試

合同管理功能解讀

? 底層mapper涉及跨庫查詢,如果不同的庫在同一個IP和端口下,是可以通過庫名.表名的方式直接查詢的

? 有兩個地方可以生成合同,頁面和定時任務

? 調用webservice流程

? e-seal生成pdf代碼解讀

全部教程
主站蜘蛛池模板: 国产精品国内免费一区二区三区 | 欧美肥老妇做爰视频 | 精品一区二区三区的国产在线观看 | 精品国产自在现线看久久 | 久草国产精品视频 | 四虎国产精品免费视 | 国产成人18黄禁网站免费观看 | 黑人边吃奶边扎下面激情视频 | 免费午夜在线视频 | 中文字幕日韩精品中文区 | 一级毛片网 | 日韩欧美aa级草草免费视频 | 精品国产91久久久久久久 | 国产午夜视频在线观看第四页 | 四虎网站在线播放 | 久久香蕉影院 | 日韩二区三区 | 黄色免费毛片 | 偷偷操网站| 国产福利在线观看 | 嫩模被xxxx视频在线观看 | 天天操操操操操 | 精品国免费一区二区三区 | 天天干天天爱天天操 | 午夜在线观看网站 | 91精品国产99久久 | 精品一区二区三区免费爱 | 国产精品亚洲一区二区三区正片 | se94se欧美| 久久香蕉国产线看观看8青草 | 日本欧美一区二区三区不卡视频 | 亚洲天天网综合自拍图片专区 | 免费日韩精品 | 97激情| 久久www免费人成_看 | 草莓视频一区二区精品 | 中文不卡视频 | 一区二区高清视频 | 大ji吧快给我别停受不了视频 | 色网综合| 99热久久国产综合精品久久国产 |