在Java EE 6的编程认证
题
是能够验证编程在Java中的用户EE 6?
让我有一些更多的细节解释:
我有使用Servlet和Hibernate现有的Java SE项目;其中I手动管理所有的认证和访问控制:
class Authenticator {
int Id
string username
}
Authenticator login(string username, string password) ;
void doListData(Authenticator auth) {
if (isLoggedIn(auth)) listData();
else doListError
}
void doUpdateData (Authenticator auth) {
if (isLoggedAsAdmin(auth)) updateData() ;
else doListError();
}
void doListError () {
listError() ;
}
并且Im积分J2EE / JPA / servlet的3 / ...(Glassfish的3)在这个项目中。
我看到anotations像:
@RolesAllowed ("viewer")
void doListdata (...) {
istData() ;
}
@RolesAllowed("admin")
void doUpdateData (...) {
updateData() ;
}
@PermotAll
void dolisterror () {
listerror() ;
}
但如何的我可以手动状态,在登录(),我的用户是管理员和/或观察者的角色?
解决方案
您好此覆盖很好在太阳的Java EE 6教程。
其他提示
首先,请确保您使用的Servlet 3.0 / 3.1。 Servlet 2.4中没有登录方法
@WebServlet(name="LoginServlet", urlPatterns={"/LoginServlet"})
public class TutorialServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String user = request.getParameter("user");
String password = request.getParameter("password");
//TODO check is user and password not null
try (PrintWriter out = response.getWriter();){
request.login(user, password);
//perhaps redirect to another page on success
} catch (ServletException e) {
//perhaps redirect to another page to login failure
throw new ServletException(e);
}
}
}
感谢您的ansers,我花了一段时间去了解它,但你可能都是对的,
login(java.lang.String user, java.lang.String password)
是我想做的事情。相反,在登录的我的的用户,我需要登录一个特定的角色:
login("admin", "admin") ;
...
:)
不隶属于 StackOverflow