play手把手教你创建一个博客项目08.添加身份认证_手把手教你做项目

2020-02-29 其他范文 下载本文

play手把手教你创建一个博客项目08.添加身份认证由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“手把手教你做项目”。

08.添加身份认证

在上一节是,我们为应用程序添加了管理区域(administration area)功能,现在我们将在这些管理区域中插入一些身份认证功能。幸运的是,play已经为这个功能准备了一个模块,这个模块叫Secure(安全)。

在程序里允许使用Secure模块

在yabe/conf/application.conf文件里允许使用Secure模块,并重启程序: # Import the secure module module.secure=${play.path}/modules/secure 重启后,play应用在控制台显示模块已经成功启动的相关信息。

Secure模块带有一系列默认的路由,需要在yabe/conf/routes里引入(或定义自己的路由也行): # Import Secure routes * / module:secure 保护admin(此处指需要身份认证的)控制器

安全模块提供了一个controllers.Secure控制器,它声明了所有可能用到的拦截器。当然,我们可以以继承这个控制器的方法获得其拦截器,但是java只允许单继承,这就导致了一些问题。

为了避免单继承带来的限制,我们可以用@With来注释admin控制器,以告诉play去调用相应的拦截器:

package controllers;

import play.*;import play.mvc.*;

@With(Secure.cla)public cla Posts extends CRUD { } 同样用于Comments, Users和Tags控制器。

Now if you try to acce any admin action, you should get a log-in page: 事实上,现在你就可以试着输入任意username/paword对看看,它其实并没有对身份进行认证。

定制身份认证处理

应用程序必须提供一个controllers.Secure.Security实例来定制身份认证处理。通过继承这个类来创建我们自己版本的Secure类,我们可以指定如何对用户身份进行认证。

创建yabe/app/controllers/Security.java文件,重写authenticate()方法: package controllers;

import models.*;

public cla Security extends Secure.Security {

static boolean authenticate(String username, String paword){ return true;} } 既然我们已经拥有了User对象,那么就非常容易实现这个方法: static boolean authenticate(String username, String paword){ return User.connect(username, paword)!= null;} 现在打开http://localhost:9000/logout进行登录尝试,用户名和密码在initial-data.yml文件里定义,比如bob@gmail.com/模块里的 ‘Log in to write something’文本修改到Admin.index控制器action:

Log in to write something …

最后一件事就是为yabe/app/views/Admin/index.html模板文件完成所有的填充工作,让我们从简单的开始: Welcome ${user}!现在回到主页,单击 ‘Log in to write something’链接就回进入样的管理区域页面: 非常好!但是既然我们已经有几个管理区域的页面,那么,我们就应该有一个超级模板以重用代码,让我们创建一个yabe/app/views/admin.html模板: Administration

#{get 'moreStyles' /}

yabe.administration

《play手把手教你创建一个博客项目08.添加身份认证.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
play手把手教你创建一个博客项目08.添加身份认证
点击下载文档
相关专题 手把手教你做项目 创建一个 手把手教你 身份认证 手把手教你做项目 创建一个 手把手教你 身份认证
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文