049醫學項目-模組五:使用權限設定-第三方系統的接入

來源:互聯網
上載者:User

標籤:servlet   erro   err   value   div   resources   密鑰   business   oca   

 

我們先示範要實現的功能:

單擊:

我們看著有三個子模組:

點擊模組管理:

在模組管理中,我們可以設定一共有幾個模組,每個模組裡面有哪些具體的操作等。

 

角色管理:

給角色指派許可權。

 

 

 

好,我們接下來看具體的實現:

我們先把第三方系統引入到工程中:

import工程。

然後修改sysconfig,和sysmanager系統中的/WEB-INF/proxool.xml檔案

接著

然後重啟Tomcat.

 

 

 

然後修改代碼:

我們增加下面連個Action層:其實我們的第三方系統的實現原理就是我們從自己的項目中的Acion進入然後進入到第三方系統中:

 

 

 

 我們看一下SysConfigAcion.java:

package yycg.base.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import yycg.base.pojo.vo.ActiveUser;import yycg.base.process.context.Config;import yycg.util.ResourcesUtil;import yycg.util.Vcom_3DES;@Controller @RequestMapping("/sysconfig")public class SysConfigAction {        //產生加密串    private String buildString(String userid,String pwd)throws Exception{        //從設定檔擷取密鑰        String key= ResourcesUtil.getValue(Config.SYSCONFIG, "deskey");            //待加密串        String oldstring = userid + "#" + pwd + "#" + System.currentTimeMillis();        System.out.println("原始串="+oldstring);        //進行3des加密,1表示加密,key:密鑰        Vcom_3DES tempDesEn = new Vcom_3DES(1, oldstring,                key);        //加密後的串        String strTemp = tempDesEn.Vcom3DESChiper();        return strTemp;    }    //sysmanagerurl_modulelist=http://localhost:8080/sysmanager/module/show.do?loginkeyString=    /**     * 模組操作管理     */    @RequestMapping("/modulelist")    public String modulelist(HttpServletRequest request)throws Exception{        HttpSession session = request.getSession();                ActiveUser activeUser = (ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY);        String userid = activeUser.getUserid();                //產生加密串        String strTemp=buildString(userid,"test");        //組織介面址        //從設定檔擷取介面址        //擷取模組管理的介面址        String module_url = ResourcesUtil.getValue(Config.SYSCONFIG, "sysmanagerurl_modulelist");                //將加密後的串追加到介面址後        String url  = module_url+strTemp;        return View.redirect(url);//轉到第三方系統    }        //角色管理sysmanagerurl_rolelist=http://localhost:8080/sysmanager/role/show.do?loginkeyString=    /**     * 角色管理     */    @RequestMapping("/rolelist")    public String rolelist(HttpServletRequest request)throws Exception{        HttpSession session = request.getSession();                ActiveUser activeUser = (ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY);        String userid = activeUser.getUserid();        //產生加密串        String strTemp=buildString(userid,"test");        //組織介面址        //從設定檔擷取介面址        //擷取模組管理的介面址        String rolelist_url = ResourcesUtil.getValue(Config.SYSCONFIG, "sysmanagerurl_rolelist");                //將加密後的串追加到介面址後        String url  = rolelist_url+strTemp;        return View.redirect(url);//轉到第三方系統    }        //系統參數配置sysconfigurl_basicinfo=http://localhost:8080/sysconfig/admin/findBasicinfoList.action?loginkeyString=    /**     * 系統參數配置     */    @RequestMapping("/basicinfo")    public String basicinfo(HttpServletRequest request)throws Exception{        HttpSession session = request.getSession();                ActiveUser activeUser = (ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY);        String userid = activeUser.getUserid();        //產生加密串        String strTemp=buildString(userid,"test");        //組織介面址        //從設定檔擷取介面址        //擷取模組管理的介面址        String basicinfo_url = ResourcesUtil.getValue(Config.SYSCONFIG, "sysconfigurl_basicinfo");                //將加密後的串追加到介面址後        String url  = basicinfo_url+strTemp;        return View.redirect(url);//轉到第三方系統    }}

 

 我們在看一下:View.java:

package yycg.base.action;import yycg.base.process.context.Config;/** * controller視圖處理公用方法類 *  * @author mrt *  */public class View {    /**     * 通用的成功jsp分頁檔名     */    public static final String SUCCESS = "success";    /**     * 通用的失敗jsp分頁檔名     */    public static final String ERROR = "error";    /**     * 返回base模組jsp路徑方法,其它模組可照此添加     *      * @param page     *            jsp檔案名稱     * @return     */    public static String toBase(String page) {        return Config.PAGE_PATH_BASE + page;    }        /**     * 返回業務模組jsp路徑方法,其它模組可照此添加     *      * @param page     *            jsp檔案名稱     * @return     */    public static String toBusiness(String page) {        return Config.PAGE_PATH_BUSINESS + page;    }    /**     * action返回成功頁面方法     *      * @return     */    public static String toSuccess() {        return Config.PAGE_PATH_BASE + SUCCESS;    }    /**     * action返回操作失敗頁面方法     *      * @return     */    public static String toError() {        return Config.PAGE_PATH_BASE + ERROR;    }                /**     * action以redirect方式重新導向到自訂url     *      * @param url     * @return     */    public static String redirect(String url) {        return "redirect:" + url;    }    /**     * action以forward方式定向到自訂頁面     *      * @param url     * @return     */    public static String forward(String url) {        return "forward:" + url;    }    }

最後我們看一下,頁面怎麼寫。

我們知道我們的左側菜單都是在meanu.json裡面的寫的,這次也是一樣:

menu.json如下:

 

 

                 {"icon" : "icon-sys","menuid" : "1","menuname" : "第三方系統","url" : "","menus" : [                 {"icon" : "icon-log","menuid" : "1_1","menuname" : "模組管理","url" : "/yycgproject/sysconfig/modulelist.action"                 },                 {"icon" : "icon-log","menuid" : "1_1","menuname" : "角色管理","url" : "/yycgproject/sysconfig/rolelist.action"                 },                 {"icon" : "icon-log","menuid" : "1_1","menuname" : "系統參數管理","url" : "/yycgproject/sysconfig/basicinfo.action"                 }                 ]                },                            

 

 

這樣子我們就實現了上面的功能了。因為這兩個第三方空間都是從源系統中拷貝出來的,所有都編輯好了,不需要我們去編輯。

 

 

下面的文章要實現的功能是:根據使用者顯示不同的菜單。使用者不用,顯示的菜單不同。

 

049醫學項目-模組五:使用權限設定-第三方系統的接入

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.