java - @Check(及其相关方法)永远不会运行

标签 java playframework

我有一个看起来像这样的安全类:

package controllers;

import play.Logger;

public class Security extends Secure.Security {
  static boolean authenticate(String username, String password) {
    return password.equals("banan");
  }

  static boolean check(String profile) {
    Logger.info("profile: %s", profile);
    if ("user".equals(profile)) {
      Logger.info("connected: %s", connected());
      return connected().equals("user");
    }

    return false;
  }

  static void onAuthenticated() {
    Logger.info("Login by user %s", connected());
  }

  static void onCheckFailed() {
    Logger.info("Check failed!", "omg");
  }

  static void onDisconnect() {
    Logger.info("Logout by user %s", connected());
  }

  static void onCheckFailed(String profile) {
    Logger.warn("Failed auth for profile %s", profile);
    forbidden();
  }
}

还有一个看起来像这样的 Controller :

@Check("user")
@With(Security.class)
public class Person extends Controller {

  public static void create() {
    List<models.person.Person> persons = models.person.Person.find(
        "order by createdAt desc").fetch(10);

    render(persons);
  }
}

永远不会调用检查方法。甚至 checkAccess(在 Secure 类中)也不会被调用。有什么想法吗?

最佳答案

通过查看您发布的代码,我可以看到一个错误(如果您与 secure module page 上的说明进行比较),就是您应该使用 @With(Secure.class).

所以,改变你的代码

@Check("user")
@With(Security.class)
public class Person extends Controller {

@Check("user")
@With(Secure.class)
public class Person extends Controller {

关于java - @Check(及其相关方法)永远不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7461820/

相关文章:

java - 字典序最小排列,使得所有相邻字母都不同

playframework - 玩!服务器 : listen to single domain name

java - 使用 Play Framework 1.x,如何让 JPA 在生产模式下创建缺失的数据库表?

java - PlayFramework 2.1.5/Java/Action 未找到

java - 如何在 Controller 外注入(inject) MessagesApi?

java - 如何使用java在中间添加一个抽象类并调用函数?

Java:如何找到部分初始化排序数组的最后一个元素的索引

scala - 如何创建具有特定版本的 Play 项目?

java - 安卓打包错误

java - 类文件中的内部类但不在类主体中?