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

浙公网安备 33010602011771号