能否在Java 6中以编程方式对用户进行身份验证?
让我更详细地解释一下:
我有一个现有的带有Servlets和hibernate的Java项目;在这里,我手动管理所有的身份验证和访问控制:
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() ;
}并集成J2ee/jpa/servlet 3/.(玻璃鱼3)在这个项目中。
我见过类似的例子:
@RolesAllowed ("viewer")
void doListdata (...) {
istData() ;
}
@RolesAllowed("admin")
void doUpdateData (...) {
updateData() ;
}
@PermotAll
void dolisterror () {
listerror() ;
}但是,我如何在login()中手动声明我的用户处于管理和/或查看器角色中?
发布于 2010-05-14 09:35:28
嗨,这是在sun java ee 6教程中很好的报道。
发布于 2013-06-30 10:48:56
首先,确保您正在使用Servlet3.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);
}
}
}发布于 2010-05-14 10:09:02
谢谢你的回答,我花了一段时间才明白,但你们都是对的,
login(java.lang.String user, java.lang.String password) 是我想要做的。我不需要在用户中登录,而是需要登录一个特定的角色:
login("admin", "admin") ;
...:)
https://stackoverflow.com/questions/2833018
复制相似问题