获取帆当前登录用户

最近做一个项目,需要实现以帆软报表为中心,实现别的系统单点登录,即默认为:帆软登录后,其他系统直接从帆软获取当前登录用户。具体思路如下

1、在帆软开发一个servlet,用于获取当前帆软登录用户。具体代码如下

2、别的系统直接调用 servlert对应的地址,获取当前系统登录的用户。然后根据当前去登录基本系统。

 1 package fr.sso;
 2 
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 import com.fr.decision.webservice.v10.login.LoginService;
11 
12 
13 /**
14  * Servlet implementation class GetCurUser
15  */
16 @WebServlet("/GetCurUser")
17 public class GetCurUser extends HttpServlet {
18     private static final long serialVersionUID = 1L;
19        
20     /**
21      * @see HttpServlet#HttpServlet()
22      */
23     public GetCurUser() {
24         super();
25         // TODO Auto-generated constructor stub
26     }
27 
28     /**
29      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
30      */
31     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
32         // TODO Auto-generated method stub
33         String userName=LoginService.getInstance().getCurrentUserNameFromRequest(request);
34         if(null==userName || userName.equals(""))
35             userName=LoginService.getInstance().getCurrentUserNameFromRequestCookie(request);
36         if(null==userName || userName.equals(""))
37             userName="guest";
38         response.getWriter().print(userName);
39     }
40 
41     /**
42      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
43      */
44     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
45         // TODO Auto-generated method stub
46         doGet(request, response);
47     }
48 
49 }

配置文件如下:

<!-- 配置一个servlet -->
<!-- servlet的配置 -->
<servlet>
    <!-- servlet的内部名称,自定义。尽量有意义 -->
    <servlet-name>GetCurUser</servlet-name>
    <!-- servlet的类全名: 包名+简单类名 -->
    <servlet-class>fr.sso.GetCurUser</servlet-class>
</servlet>
<!-- servlet的映射配置 -->
<servlet-mapping>
    <!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->
    <servlet-name>GetCurUser</servlet-name>
    <!-- servlet的映射路径(访问servlet的名称) -->
    <url-pattern>/GetCurUser.do</url-pattern>
</servlet-mapping>

  

posted @ 2020-03-26 20:16  龙人在线  阅读(2063)  评论(0)    收藏  举报