相关疑难解决方法(0)

使用j_security_check在Java EE/JSF中执行用户身份验证

我想知道当前的方法是关于使用JSF 2.0(如果存在任何组件)和Java EE 6核心机制(登录/检查权限/注销)的Web应用程序的用户身份验证,其中包含用户信息保存在JPA中实体.Oracle Java EE教程在这方面有点稀疏(仅处理servlet).

没有使用整个其他框架,如Spring-Security(acegi)或Seam,但如果可能的话,试图用新的Java EE 6平台(Web配置文件).

authentication jsf jaas j-security-check java-ee

155
推荐指数
3
解决办法
14万
查看次数

何时从Container托管安全转移到Apache Shiro,Spring Security等替代方案?

我正在尝试保护使用JSF2.0构建的应用程序.

我很困惑人们什么时候选择使用像Shiro,Spring Security或owasp的esapi这样的安全替代品来留下容器管理的安全性.看过Stack Overflow上的一些相关问题后,我意识到JSF开发人员过去更喜欢基于容器的安全性.但我也强烈建议使用Apache Shiro.我是安全问题的新手,不知道可能是什么相关问题以及如何处理它们.因此,我正在寻找通过其默认设置/自己处理大多数安全问题的东西.

就我的应用程序需求而言,我有一个社交应用程序,具有不同角色的用户可以访问不同的页面集,并可以根据他们的角色在这些页面上使用不同级别的功能.

在那种情况下,您认为对我来说可能是一个很好的选择吗?

我个人已经确信选择Shiro,因为它易于使用并且为新手照顾大部分事情.

java security jsf jaas shiro

19
推荐指数
2
解决办法
9320
查看次数

以编程方式使用Servlet 3.0控制登录

我已经测试了Glassfish 3.0.1中的默认安全容器,并得出结论,我将不再花费更多时间.相反,我想自己控制验证.但我需要一些指导才能让我走上正轨.

目前我有一个具有登录/注销功能的UserBean(见下文).我不想使用*j_security_check*内置容器,但使用核心JSF 2.0.

我的问题是;

  1. 如果用户未登录(如果访问某些文件夹),是否需要ServletFilter来重定向流量?
  2. 用户成功登录后如何存储用户权限?

感谢任何帮助或链接到一个例子,问候克里斯.

PS.请原谅我将两个问题集中在一起

@ManagedBean
@SessionScoped
public class UserBean {

private AuthenticateUser authenticateUser;
...

public String login() {
    FacesContext context = FacesContext.getCurrentInstance();
    HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();

    JsfUtil.log("Username : " +authenticateUser.getUserName());
    JsfUtil.log("Password : " +authenticateUser.getPassword());
    AuthenticateUser authRequest = authenticationFacade.find(authenticateUser);
    try {
        if(!authRequest.equals(authenticateUser))
            return "/loginError";

        request.login(authenticateUser.getUserName(), authenticateUser.getPassword());
        return "";
    } catch(ServletException e){
       JsfUtil.addErrorMessage(e, "Incorrect username or password, please try again.");
       return "/loginError";
    }

...
public String logOut() {
    String result = "/index?faces-redirect=true";
    FacesContext context = FacesContext.getCurrentInstance(); …
Run Code Online (Sandbox Code Playgroud)

jsf servlets servlet-filters

6
推荐指数
1
解决办法
6801
查看次数