4

Java EE 6でユーザーをプログラムで認証することは可能ですか?

もう少し詳しく説明させてください。

サーブレットと休止状態を備えた既存のJavaSEプロジェクトがあります。ここで、すべての認証とアクセス制御を手動で管理します。

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 / ...(Glassfish 3)を統合します。

私は次のような注釈を見てきました:

@RolesAllowed ("viewer")
void doListdata (...) {
    istData() ;
}

@RolesAllowed("admin")
void doUpdateData (...) {
    updateData() ;
}

@PermotAll
void dolisterror () {
    listerror() ;
}

しかし、login()で、ユーザーが管理者または閲覧者の役割にあることを手動で指定するにはどうすればよいですか?

4

3 に答える 3

1

まず、サーブレット3.0/3.1を使用していることを確認してください。サーブレット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);
        } 
      }
    }
于 2013-06-30T10:48:56.090 に答える
0

こんにちは、これはsun javaee6チュートリアルでかなりよくカバーされています。

于 2010-05-14T09:35:28.340 に答える
0

あなたの答えをありがとう、私はそれを理解するのに少し時間がかかりました、しかしあなたは両方とも正しいです、

login(java.lang.String user, java.lang.String password) 

私がやりたいことです。ユーザーにログインする代わりに特定の役割にログインする必要があります。

login("admin", "admin") ;
...

:)

于 2010-05-14T10:09:02.620 に答える