现在application.conf中将secure打开
#Import the secure module module.secure=${play.path}/modules/secure
在routes中写
#Import Secure routes
* / module:secure
然后在controller中,类前加上@With(Secure.class),则在浏览器中想要得到任何model时,都会先跳到登录页面(不过目前只要用户名和密码一样,就可以登录进去~)。
规范化认证的过程
在controller中新建Security类
(extends Secure.Security),然后重写authenticate函数。
如果本来有User类,可以借助用来校验~
创建Admin类
(点击切换版式)在routes中加上
这样在browser中/admin都会指向CRUD的模块,/admin/会指向CRUD.index而不是Admin.index
在main.html中加入
先用http://localhost:9000/logout注销用户,然后重新加载localhost:9000页面,页面中会显示一行Log in to write something,点击后会跳到登录页面,然后就可以出现Weclome user!的页面。
因为有好几个model都在admin域,所以我们可以建一个新的父模板。
然后,让Admin/index.html继承admin.html
运行,可以看到效果
再加上认证跟断开的部分可以改写admin.html来写针对admin的操作
#{secure.check /}标签定义了只针对admin用户显示的部分。
但是还不够充分,如果知道URL的话,不用登录也可以直接获取。所以我们得在相对于model的那几个controller中加上@Check标识,如
当你再次试图直接获取http://localhost:9000/admin/users时,会出现403 Forbidden的错误~
规范化CRUD布局
cd playFun,然后敲命令:play crud:ov --layout,
然后就会得到/views/CRUD/layout.html模板。让layout.html继承admin.html。
我们可以通过get/set来重用那些css样式。
格式化login页面
play secure:ov --css
想再加上css样式时,可以用
格式化页面显示信息时,可以在conf/message.fr中加上自己需要的内容,如
这一段落到此结束啦~