Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果应用程序有多个登录页,如何使用安全模块(play framework)_Java_Security_Authentication_Playframework 1.x - Fatal编程技术网

Java 如果应用程序有多个登录页,如何使用安全模块(play framework)

Java 如果应用程序有多个登录页,如何使用安全模块(play framework),java,security,authentication,playframework-1.x,Java,Security,Authentication,Playframework 1.x,问题- 在我的应用程序中,我有两个不同的模块 1-前端视图 2-后端管理视图。 两个模块都有两种不同的登录形式。对于这两个模块,对用户进行身份验证的身份验证过程也不同。 现在,在Secure.java中,只有一个操作/方法“login()”可以在用户未经身份验证时呈现登录页面。那么,如果用户没有经过身份验证,我应该如何管理相应模块的登录页面的呈现呢。我可以通过定制Secure.java类和Secure模块的路由文件来管理它。但这是一种正确的方法吗。 我还有一个查询,它重新格式化了“check”方

问题- 在我的应用程序中,我有两个不同的模块 1-前端视图 2-后端管理视图。 两个模块都有两种不同的登录形式。对于这两个模块,对用户进行身份验证的身份验证过程也不同。 现在,在Secure.java中,只有一个操作/方法“login()”可以在用户未经身份验证时呈现登录页面。那么,如果用户没有经过身份验证,我应该如何管理相应模块的登录页面的呈现呢。我可以通过定制Secure.java类和Secure模块的路由文件来管理它。但这是一种正确的方法吗。 我还有一个查询,它重新格式化了“check”方法。根据文档,我们需要重写Security类(从Secure.Security扩展而来)中的check方法,以便检查用户的配置文件。我也做了同样的事情,即在admin控制器中添加了check注释@check(“admin”),并重写了Security类中的方法。但是永远不会调用check方法(重写的方法)。为什么会这样??我这里有什么不对劲吗

下面是Admin类的结构

@With(Secure.class)
@Check("admin")
public class Admin extends JapidContorller {

  /**
  * An action to render the index page of the Back end admin module.
  */
  public static void index(){
     renderJapid();
  }

  /**
   * An action to render the login page of the Back end admin module.
   */
   public static void adminLogin() {
      renderJapid();
  }

  /**
   * An method to log out the logged in user.
   */
   public static void adminLogout(){
      renderJapid();
   }

}
还有保安课

public class Security extends Secure.Security {
    public static boolean authenticate(String username, String password){
      -----------------
      -----------------
    }

    public static boolean check(String profile){
       System.out.println("[Security]  The check from security is called");
       return true;
    }
}
但是在这里,当我请求Admin.index()页面时,从未调用过检查。 所以这里我需要我们在两个不同问题上的帮助。 1)如果应用程序有多个登录页面,那么我们应该如何使用安全模块处理用户的身份验证。 2) 从未调用重写的检查方法


请帮帮我。非常紧急。

您可以使用Deadbolt添加授权,然后在调用DeadboltHandler#onAccessFailure时发送到所需的登录页面。看一看与安全示例应用程序的集成,了解如何做到这一点