実は、過去4か月間取り組んできたにもかかわらず、JSF、Facelets、エンタープライズアプリは初めてです。とにかく、ログイン、ユーザー管理者、ドキュメント管理者がいるWebページを開発しています(しかし、それは問題ではありません)そして私は各ユーザーの許可に従ってアクセスとページのコンテンツを管理する必要があります。セキュリティについて読んで、ログインを行う多くの方法を見つけましたが、後で使用するためにアプリケーションでユーザーデータを維持し、コンテンツを制限できるようにするために、ステートフルBeanを使用して独自に作成しました。問題は...これはユーザーの制限に従ってコンテンツを管理する正しい方法ですか?そうでない場合、それを行うための最良かつ最も安全な方法はどれですか?
これは私のステートフルビーンです(私はゲッターとセッターを含めませんでした)
@ManagedBean
@Stateful
public class HandlerLogin implements Serializable{
@EJB
private LoginMethodsLocal loginMethods;
private String loginNickname;
private String loginPassword;
private String userData[];
//[0]=Nickname
//[1]=Name
//[2]=User Type
private boolean loguedIn= false;
public void check(){
System.out.println(this.loginNombre);
System.out.println(this.loginContrasena);
this.userData= loginMethods.Login(this.loginNickname, this.loginPassword);
//the method loginMethods.Login() queries in the database looking for
//"this.loginNickname" and "this.loginPassword"
if (this.userData!=null){
this.loguedIn=true;
}
else{
this.loguedIn= false;
FacesContext.getCurrentInstance().addMessage("mensajesLogin", new FacesMessage("Error, User Does not Exist"));
}
}
public void closeSession(){
this.userData=null;
}
}
したがって、コンテンツとナビゲーションを管理するための私のロジックは、ユーザーの種類を確認し、それに応じてアクセスとレンダリングがどのようになるかを決定することです。