📄 proxyloginaction.java
字号:
package com.sofmit.tools.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.wondersgroup.framework.security.bo.SecurityUser;
import com.wondersgroup.framework.security.service.UserService;
import com.sofmit.tools.*;
public class ProxyLoginAction extends BaseAction {
public static final String SECURITY_LOGIN_NAME="security.login.name";
public static final String SECURITY_LOGIN_ID="security.login.userId";//被代理者的用户ID
public static final String SECURITY_LOGIN_USER="security.login.user";
public static final String SECURITY_PROXY_ID="security.proxy.userId";//代理者的用户ID
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public ActionForward proxyLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
userService=(UserService)getService("userService",request);
String userId =(String) request.getParameter("userId");
String sessionUserId=(String)request.getSession().getAttribute(SECURITY_LOGIN_ID);
SecurityUser user=userService.loadUserById(Long.parseLong(sessionUserId));
if (sessionUserId==null)return (mapping.findForward("failure"));//判断代理者是否已通过身份认证
SecurityUser[] securityUsers=userService.getUsersByProxy(user,true);
for (int i=0;i<securityUsers.length;i++)
{
if (securityUsers[i].getId()==Long.parseLong(userId))//判断是否已授权的代理
{
if(request.getSession().getAttribute(Constants.ORIGIN_LOGIN_ID)==null)
{
request.getSession().setAttribute(Constants.ORIGIN_LOGIN_ID,request.getSession().getAttribute(SECURITY_LOGIN_ID));
}
request.getSession().setAttribute(SECURITY_LOGIN_ID, String.valueOf(securityUsers[i].getId()));
request.getSession().setAttribute(SECURITY_LOGIN_NAME, securityUsers[i].getName());
request.getSession().setAttribute(SECURITY_PROXY_ID, sessionUserId);
if(request.getSession().getAttribute(Constants.SECURITY_LOGIN_ID)==request.getSession().getAttribute(Constants.ORIGIN_LOGIN_ID))
request.getSession().setAttribute(Constants.IS_PROXY_LOGON,null);
else
request.getSession().setAttribute(Constants.IS_PROXY_LOGON,"yes");
return mapping.findForward("success");
}
}
return (mapping.findForward("failure"));
}
public ActionForward selfLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
userService=(UserService)getService("userService",request);
String userId =(String) request.getParameter("userId");
if (request.getSession().getAttribute(Constants.ORIGIN_LOGIN_ID).equals(userId))//判断是否返回自己
{
if(request.getSession().getAttribute(Constants.ORIGIN_LOGIN_ID)==null)
{
request.getSession().setAttribute(Constants.ORIGIN_LOGIN_ID,request.getSession().getAttribute(SECURITY_LOGIN_ID));
}
request.getSession().setAttribute(SECURITY_LOGIN_ID, request.getSession().getAttribute(Constants.ORIGIN_LOGIN_ID));
// request.getSession().setAttribute(SECURITY_LOGIN_NAME, securityUsers[i].getName());
// request.getSession().setAttribute(SECURITY_PROXY_ID, sessionUserId);
request.getSession().setAttribute(Constants.IS_PROXY_LOGON,null);
return mapping.findForward("success");
}
return (mapping.findForward("failure"));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -