是否建议对Secure类播放框架的方法进行更改? 或者有办法吗?
答案 0 :(得分: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();
编辑: 阅读完所有评论并了解Joe的真正需求后,这里是解决方案的一部分。
dependencies.yml
文件中添加安全依赖项来执行此操作。 (也运行play dependencies
)Security
以覆盖身份验证方法。onAuthenticate
覆盖redirect()
方法重定向到您选择的页面loginbox.html
文件夹中创建新标记tags
。代码粘贴在下面。 #{loginbox /}
这意味着:
#{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}
答案 1 :(得分:5)
最好扩展Security类(如Zenklys所提到的)并覆盖您感兴趣的方法。 检查一下Play Secure document 话虽如此,没有什么能阻止您修改Secure类本身,但是您需要确保在每次Play升级时都反映出这些更改。
更新
如果您想拥有自己的登录页面,那么简单,只需在您的应用程序视图文件夹中创建“安全”文件夹,并在其中添加您的“login.html”版本。即您实际上覆盖了默认的安全模块登录页面。
答案 2 :(得分:0)
虽然play建议你扩展Security类(并通过发出命令play secure:override --login覆盖login.html页面)...我更喜欢实际修改安全模块本身因为我无法做所有事情我希望通过扩展它。所以,这是一个替代解决方案,对我来说效果更好,并且总体上给我的问题少。我正在使用play 1.2.4