📄 securityfacadebean.java
字号:
package com.jdon.security.auth.ejb;
import javax.ejb.*;
import org.apache.log4j.Logger;
import com.jdon.servicelocator.ejb.ServiceLocator;
import com.jdon.servicelocator.ServiceLocatorException;
import com.jdon.security.auth.util.JNDINames;
import com.jdon.security.Constants;
import com.jdon.security.User;
import com.jdon.security.Role;
import com.jdon.security.auth.PrincipalException;
import com.jdon.controller.ejb.EJBControllerBean;
import com.jdon.asyncsender.ejb.*;
import com.jdon.asyncsender.util.MailUtil;
import com.jdon.mailer.Mail;
/**
*
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Jdon.com Copyright (c) 2003</p>
* <p>Company: 上海解道计算机技术有限公司</p>
* @author banq
* @version 1.0
*/
public class SecurityFacadeBean extends EJBControllerBean implements SessionBean {
private final static Logger logger = Logger.getLogger(SecurityFacadeBean.class);
SessionContext sessionContext;
RoleManagerLocalHome roleManagerLocalHome;
UserManagerLocalHome userManagerLocalHome;
AsyncSenderLocalHome asyncSenderLocalHome;
private User user = null;
public void ejbCreate() throws CreateException {
try {
ServiceLocator sl = new ServiceLocator();
roleManagerLocalHome = (RoleManagerLocalHome) sl.getLocalHome(
JNDINames.ROLEMANAGER_HOME);
userManagerLocalHome = (UserManagerLocalHome) sl.getLocalHome(
JNDINames.USERMANAGER_HOME);
asyncSenderLocalHome = (AsyncSenderLocalHome) sl.getLocalHome(
JNDINames.ASYNC_SENDER_HOME);
} catch (ServiceLocatorException ex) {
logger.error("Service Locate error:" + ex);
throw new CreateException();
} catch (Exception ex) {
logger.error("Exception:" + ex);
throw new CreateException();
}
}
/**
* 获得UsermanagerLocal
* @return
*/
public UserManagerLocal getUserManager() {
UserManagerLocal userManagerLocal = null;
try {
userManagerLocal = userManagerLocalHome.create();
} catch (Exception ex) {
logger.error("getUserManager() error:" + ex);
}
return userManagerLocal;
}
/**
* 获得RoleManagerLocal
* @return
*/
public RoleManagerLocal getRoleManager() {
RoleManagerLocal roleManagerLocal = null;
try {
roleManagerLocal = roleManagerLocalHome.create();
} catch (Exception ex) {
logger.error("getRoleManager() error:" + ex);
}
return roleManagerLocal;
}
/**
* 获得当前session的User实例
* @return
*/
public User getUser() {
if (this.user != null)
return this.user;
logger.debug("user is null, get it from principal ...");
setUser();
return this.user;
}
public void setUser() {
try {
this.user = getUserManager().getUserByPrincipal();
} catch (PrincipalException e) {
logger.error(" PrincipalException error : " + e);
} catch (Exception ex) {
logger.error(" can't getuserByPrincipal : " + ex);
}
}
public boolean getPassword(String email) {
logger.debug("--> enter getpassword");
boolean success = false;
try {
User user = getUserManager().getUserByEmail(email);
if (user == null)
return success;
String subject = " 用户名和密码";
StringBuffer buffer = new StringBuffer();
buffer.append(" 用户:").append(user.getName());
buffer.append(" 密码:").append(user.getPassword());
if (sendMail(user.getEmail(), subject, buffer.toString()))
success = true;
} catch (Exception ex) {
logger.error(" getPassword: " + ex);
}
return success;
}
/**
* 向JMS发出Email
* @param toAddress
* @param subject
* @param content
*/
public boolean sendMail(String toAddress, String subject, String content) {
try {
logger.debug(" -->enter send mail");
Mail mail = new Mail();
mail.setToAddress(toAddress);
mail.setFromAddress("banq@jdon.com");
mail.setSubject(subject);
mail.setContent(content);
String msg = MailUtil.getMsgFromMail(mail);
AsyncSenderLocal asyncSenderLocal = asyncSenderLocalHome.create();
asyncSenderLocal.sendAMessage(msg);
logger.debug(" -->send mail to: " + toAddress + " successfully!");
return true;
} catch (Exception ex) {
logger.error(" sendMail() error : " + ex);
return false;
}
}
public boolean isAdministrator() {
return sessionContext.isCallerInRole(Role.ADMINISTRATOR);
}
public boolean isUser() {
return sessionContext.isCallerInRole(Role.USER);
}
public void ejbRemove() {
/**@todo Complete this method*/
}
public void ejbActivate() {
/**@todo Complete this method*/
}
public void ejbPassivate() {
/**@todo Complete this method*/
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
public void setUser(User user) { this.user = user;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -