更改play框架的Secure.java类

dev*_*joe 4 security playframework

是否可以对Secure class of play框架的方法进行更改?或者有办法吗?

i.a*_*iel 8

Secure.class .Security.class 是的.

要更改Secure.class.不,通常,在大多数情况下应该没问题.但是,你必须扩展Security课程.此类中有几种方法必须重写以适合您的应用程序.

static boolean authenticate(String username, String password);
static boolean check(String profile);
static String connected();
static void onAuthenticated();
static void onDisconnect();
static void onDisconnected();
Run Code Online (Sandbox Code Playgroud)

编辑: 阅读完所有评论并了解Joe的真正需求后,这里是解决方案的一部分.

  1. 创建一个普通的登录页面.您可以通过在dependencies.yml文件中添加安全依赖项来完成此操作.(也运行play dependencies)
  2. 扩展Security以覆盖认证方法.
  3. 还使用覆盖onAuthenticate方法重定向到yuor选择页面redirect()
  4. loginbox.htmltags文件夹中创建一个新标签.代码粘贴在下面.
  5. 在您的主页中使用loginbox标记: #{loginbox /}

这意味着:

  • 您将在主页上有一个登录框.
  • 当用户登录身份验证时,他们将被重定向到您选择的页面.
  • 当用户登录失败时,他们将被重定向到登录页面,并在那里看到错误.

loginbox.html

#{form @authenticate()}
    <label>Login</label>
    <input type="text" name="username" maxlength="80"/>

    <label>Password</label>
    <input type="password" name="password" maxlength="80"/>

    <input type="submit" class="rounded" value="Se connecter" />
#{/form}
Run Code Online (Sandbox Code Playgroud)


soj*_*jin 5

最好扩展Security类(如Zenklys所提到的)并覆盖你感兴趣的方法.检查这个Play Secure文件 尽管如此,没有什么可以阻止你修改Secure类本身,但是你需要确保反映这些变化每次Play升级.

UPDATE

如果你想拥有自己的登录页面,简单,只需在你的应用程序视图文件夹中创建'Secure'文件夹,并在其中添加你的'login.html'版本.即您有效地覆盖默认的安全模块登录页面.