Привет, у меня есть приложение, которое использует свою собственную реализацию для аутентификации пользователя, сохраняя пользовательское pojo в HttpSession и аннулируя этот объект HttpSession при выполнении сеанса, но что я хотите сделать это, чтобы использовать контекст безопасности для аутентификации пользователя. давайте говорить, что у меня есть сервлет AuthenticateUserServlet:Как выполнить аутентификацию и создать сеанс программно в контексте безопасности
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{
String username=req.getParameter("username");
String password=req.getParameter("password");
if(Authenticator.check(username,password)){
HttpSession session=req.getSession(true);
session.setAttribute("user",Authenticator.getUser(username));
PrintWriter out= req.getWriter();
out.println("<h2>Welcome</h2>");
}else{
PrintWriter out= req.getWriter();
out.println("<h2>the password or username are incorrect</h2>");
}
}
код выше, не даст мне силы контекста безопасности, с тем, что я wan't это когда я проверить, что пользователь нормально для входа сказать в некотором образе контекст безопасности, что этот пользователь может получить доступ здесь его роль что-то вроде этого в моей AuthenticateUserServlet:
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,IOException{
String username=req.getParameter("username");
String password=req.getParameter("password");
LoginContext lc = new LoginContext("my-jaas",new MyCallbackHandler(username,password));
try{
lc.login();
//notice i have not save any thing in the HTTPSeession
//i want my container to remember this user like what happens in the
// form based authentication where nothing gets saved in the httpSession
// but the user keeps logged in(cartalina uses a session object not httpsession for that)
PrintWriter out= req.getWriter();
out.println("<h2>Welcome</h2>");
}
catch(LoginException e){
PrintWriter out= req.getWriter();
out.println(e.getMessage());
}
}
я создал свой собственный LoginModule («My-JAAS») и она отлично работает, когда я настроить проверку подлинности на основе форм работать с ним в tomcat7.
человека, которого ты оставил меня spechless, это было в моих глазах; не могу поблагодарить вас достаточно – achabahe
рад, что я мог бы помочь :-) – flo