【发布时间】:2014-07-15 07:41:54
【问题描述】:
我正在使用 Struts2、Spring、Spring security 和 Hibernate 开发一个应用程序。
我需要使用会话,我尝试用这段代码定义我的会话:
Map session = ActionContext.getContext().getSession();//line 1
session.put("objet",objet);// line2
但它返回一个java.lang.NullPointerException (line1)
你对这个问题有什么想法吗?
LoginAction.java
public class LoginAction extends ActionSupport implements SessionAware, Preparable, AuthenticationSuccessHandler {
private UserDetails userDetails;
private User userConnecte;
private Map session;
@Autowired
private UserBO userBO;
// DI via spring
public void setUserBO(UserBO userBO) {
this.userBO = userBO;
}
/**
* Getters and setters
* @return
*/
public User getUserConnecte() {
return userConnecte;
}
public void setUserConnecte(User userConnecte) {
this.userConnecte = userConnecte;
}
public User getSession() {
return session;
}
public void setSession(Map session) {
this.session = session;
}
public void prepare() throws Exception {
// TODO Auto-generated method stub
}
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication authentication)
throws IOException, ServletException {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (!(auth instanceof AnonymousAuthenticationToken)) {
this.userDetails = (UserDetails) auth.getPrincipal();
}
this.userConnecte = this.userBO.retournerUserByEmail(this.userDetails.getUsername());
this.session = ActionContext.getContext().getSession();
session.put("userConnecte", this.userConnecte);
}
}
【问题讨论】:
-
你在哪里使用这个代码?
-
在我的 LoginAction 类中
-
能否贴出与您的问题相关的源代码?
-
完成!这是我的 LoginAction 类
-
不要将 S2 操作用作
AuthenticationSuccessHandler。
标签: java spring session struts2 httpsession