play secure模块 验证和授权管理
来源:互联网 发布:python 十分钟 编辑:程序博客网 时间:2024/05/16 12:49
参考:http://www.playframework.org/documentation/1.2.3/secure
Play Secure模块放置在play安装目录\modules\secure下,包含在play标准的发布包中。简单的Secure模块被设计用来帮助用户在应用程序中提供验证和授权管理。它提供了一个简单的控制器controllers.Secure,在里面定义了一些拦截器,你能很容易地使用@With注解把这些拦截器加到自己的控制器中。
启用Secure模块:
在/conf/dependencies.yml文件中增加如下内容:
导入Secure模块的默认路由:
导入Secure模块的默认路由并不是必须的,用户可以定义自己的路由,也可以混合2者一起使用。
在conf/routes中通过如下命令导入默认的模块路由:
这里被导入的路由内容如下:
使用拦截器保护controller:
如下使用@With注解来保护控制器(必须验证通过才能使用该控制器)
自定义验证方法:
默认情况下,登陆页面接受所有的用户名和密码。为了给应用程序增加安全保护,只需要按如下步骤定制下它。
访问验证通过的用户:
使用Security.connected方法来取得验证通过的用户
增加授权检查 check注解:
可以使用@check注解来告诉Secure模块,检查当前连接的用户是否有操作控制器、或者其中的方法的权限。
默认情况下,secure模块会一直检查所有checks,你可以通过在自己的Security类中重写方法来修改默认行为。
Play Secure模块放置在play安装目录\modules\secure下,包含在play标准的发布包中。简单的Secure模块被设计用来帮助用户在应用程序中提供验证和授权管理。它提供了一个简单的控制器controllers.Secure,在里面定义了一些拦截器,你能很容易地使用@With注解把这些拦截器加到自己的控制器中。
启用Secure模块:
在/conf/dependencies.yml文件中增加如下内容:
- require:
- - play -> secure
导入Secure模块的默认路由:
导入Secure模块的默认路由并不是必须的,用户可以定义自己的路由,也可以混合2者一起使用。
在conf/routes中通过如下命令导入默认的模块路由:
- # Import Secure routes
- * / module:secure
这里被导入的路由内容如下:
- # import these default routes as :
- # * / module:secure
- # ~~~~
- GET /login Secure.login
- POST /login Secure.authenticate
- GET /logout Secure.logout
使用拦截器保护controller:
如下使用@With注解来保护控制器(必须验证通过才能使用该控制器)
- @With(Secure.class)
- public class Application extends Controller {
- public static void index() {
- render();
- }
- }
自定义验证方法:
默认情况下,登陆页面接受所有的用户名和密码。为了给应用程序增加安全保护,只需要按如下步骤定制下它。
- 在controllers包下创建一个继承自controllers.Secure.Security的方法
- 重写authenticate(String username, String password)方法
- 也可以重写其他方法,如onAuthenticated, onDisconnected来修改应用程序行为
- package controllers;
- public class Security extends Secure.Security {
- static boolean authenticate(String username, String password) {
- User user = User.find("byEmail", username).first();
- return user != null && user.password.equals(password);
- }
- }
访问验证通过的用户:
使用Security.connected方法来取得验证通过的用户
- @With(Secure.class)
- public class Application extends Controller {
- public static void index() {
- String user = Security.connected();
- render(user);
- }
- }
增加授权检查 check注解:
可以使用@check注解来告诉Secure模块,检查当前连接的用户是否有操作控制器、或者其中的方法的权限。
- @With(Secure.class)
- public class Application extends Controller {
- …
- @Check("isAdmin")
- public static void delete(Long id) {
- …
- }
- }
默认情况下,secure模块会一直检查所有checks,你可以通过在自己的Security类中重写方法来修改默认行为。
- package controllers;
- public class Security extends Secure.Security {
- …
- static boolean check(String profile) {
- User user = User.find("byEmail", connected()).first();
- if ("isAdmin".equals(profile)) {
- return user.admin;
- }
- else {
- return false;
- }
- }
- }
0 0
- play secure模块 验证和授权管理
- play secure模块 验证和授权管理
- play验证码模块的实现
- Java验证和授权
- yii验证和授权
- 40. 验证和授权
- 17.Play模块和模块仓库
- 成员管理和授权
- mui-OAuth模块管理客户端的用户登录授权验证功能,允许应用访问第三方平台的资源。
- 42.验证和授权(2)
- Apache shiro 登录验证授权管理
- play framework学习(secure)
- [.NET 基于角色安全性验证] 之四:ASP.NET 2.0 成员资格和角色管理授权
- [.NET 基于角色安全性验证] 之四:ASP.NET 2.0 成员资格和角色管理授权
- [.NET 基于角色安全性验证] 之四:ASP.NET 2.0 成员资格和角色管理授权
- mysql 授权管理和设置
- MongoDB用户授权和管理
- 关于API和OAuth授权验证
- hdu2795 线段树
- Play tag标签,模板、tag中直接调用后台静态java方法
- python+ulipad开发环境(win8环境下)
- cocos2d-x lua调用自定义c++ 类
- 《机器学习实战》读书笔记3:信息熵和信息增益
- play secure模块 验证和授权管理
- Java关于时间日期的Date类和Calendar类概述
- Revit开发将WPF的Ower设置为Revit窗体
- Java四类八种数据类型
- 二进制及其他
- Play framework HTTP Route路由
- HDU1016 Prime Ring Problem (DFS)
- python 练习
- 外挂学习之路(2)--- 老生常谈“基地址”