Secure模块
提供了简单的验证功能,只要使用@With(Secure.class)标注在Controller上即可!
1.需要验证:
应用中99%的功能,都必须要登陆后才能访问,将这些功能所在的Controller都添加@With(Secure.class)。
当访问Controller中的任何方法时就会进行登录检查。【注:play在Secure类的checkAccess()上使用 @Before(unless={"login", "authenticate", "logout"}),将这3个方法排除了,不会拦截】
2.不需要验证:
如,登录页面,权限检查,登出动作,注册页面,这些都不需要验证。
play提供了一个登录页面,需要加入注册页面,那么就需要新建一个Controller,并且不能被Secure进行检查。该Controller不使用@With(Secure.class),注册页面就不会被拦截了。
login页面的路径显示问题
如果没有为secure模块指定路由,URL显示为:
http://localhost:9000/secure/login
如果为Secure模块指定了路由(Secure模块提供了一系列默认的路由配置):
#Import Secure routes
* / module:secure
则URL显示为:
http://localhost:9000/login
改造play的登陆页面,加入注册按钮
play secure:ov --login
修改app\views\Secure\login.html,添加注册按钮
#{extends 'Secure/layout.html' /} <div id="login"> <h1>&{'secure.title'}</h1> #{form @authenticate()} #{if flash.error} <p class="error"> &{flash.error} </p> #{/if} #{if flash.success} <p class="success"> &{flash.success} </p> #{/if} <p id="username-field"> <label for="username">&{'secure.username'}</label> <input type="text" name="username" id="username" value="${flash.username}" /> </p> <p id="password-field"> <label for="password">&{'secure.password'}</label> <input type="password" name="password" id="password" value="" /> </p> <p id="remember-field"> <input type="checkbox" name="remember" id="remember" value="true" ${flash.remember ? 'checked="true"' : ''} /> <label for="remember">&{'secure.remember'}</label> </p> <p id="signin-field"> <input type="submit" id="signin" value="&{'secure.signin'}" /> <!-- 加入注册按钮 --> <input type="button" id="reg" value="注册"/> </p> #{/form} </div>
复制Secure模块下的secure.css,重命名为login.css,放到public\stylesheets目录下
这样做的目的是,不对play内部的样式文件进行修改,而是拷贝单独一份进行使用
修改login.css,目的在于将2个按钮放在一行显示
/*修改样式,将2个按钮放在一行*/ #signin-field input { display: inline; margin-top: 10px; margin-left: 90px; } /*用户名框与密码框等长*/ #username-field input { width: 150px; font-size: 13px; }
同样,将login.html所依赖的layout.html一起拷贝到项目中
play secure:ov --layout
修改引入的样式文件,指向刚才那个新的login.css,这样就脱离了对play内部的依赖。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Login</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!-- 使用修改后的样式文件 --> <link rel="stylesheet" type="text/css" media="screen" href="@{'/public/stylesheets/login.css'}" /> </head> <body> #{doLayout /} </body> </html>
效果:
相关推荐
以下是一些关于Play Framework API的知识点: 1. **模块化设计**:Play Framework采用了模块化的设计,使得开发者可以方便地添加或替换特定功能,如模板引擎、持久化层等。 2. **异步编程**:Play Framework基于...
### Play Framework Cookbook 知识点解析 #### 一、Play Framework 概览 - **框架简介**:Play Framework 是一个开源的 Web 开发框架,基于 Java 和 Scala 编程语言。它采用轻量级、非阻塞的服务端架构,特别适合...
### Play Framework Cookbook 知识点解析 #### 一、Play Framework 概览 - **定义与背景**:Play Framework 是一款基于 Java 和 Scala 的高性能、轻量级 Web 开发框架。它采用 RESTful 架构设计,支持热重载功能,...
在Play Framework2中,你将学习到以下关键知识点: 1. **MVC架构**:Play遵循模型-视图-控制器(MVC)设计模式,这是一种用于构建可维护和可扩展的Web应用的经典方法。模型代表业务数据,视图负责渲染这些数据,而...
在“Playframework框架学习之路 1”中,我们可能要探讨这个框架的基础概念、安装过程以及如何创建一个简单的应用。下面将详细介绍Play Framework的关键知识点。 1. **快速开发**: Play Framework以其快速开发能力而...
### Play Framework Cookbook 知识点概览 #### 一、编写自定义渲染方法 - **知识点概述**:Play Framework 允许开发者编写自己的渲染方法,从而返回定制化的格式,如PDF、RSS或ATOM feed响应。 - **应用场景**:在...
以下是对手册中部分核心知识点的详细阐述: 1. **MVC应用程序模型**:Play框架遵循经典的Model-View-Controller(MVC)设计模式。`app/controllers`包含控制器类,处理HTTP请求;`app/models`存放业务逻辑和数据...
Play-Utils 模块主要包含以下几个关键知识点: 1. **类型安全的模板助手**: 在 Play Framework 中,模板引擎用于生成 HTML 输出。Play-Utils 提供了类型安全的助手方法,避免了模板中常见的类型转换错误,同时...
### Play Framework Cookbook Second Edition 关键知识点解析 #### 一、Play Framework 概述 - **定义与背景**:Play Framework 是一个开源的 Web 开发框架,适用于 Java 和 Scala,特别强调高生产力、易于测试和可...
在使用Play Framework开发学生信息管理系统时,以下几个关键知识点值得深入理解: 1. **路由(Routing)**:Play Framework 的路由系统是其核心特性之一,它定义了HTTP请求与应用程序Action之间的映射。在项目中,...
### Playframework Cookbook 知识点解析 #### 一、Play Framework 概览 - **框架定位**:Play Framework 是一个开源的、轻量级的 Web 应用开发框架,主要面向 Java 和 Scala 开发者。它支持现代 web 开发的需求,...
以下是关于Play Framework的一些核心知识点: 1. **MVC架构**:Play Framework 基于MVC模式,它将应用分为模型、视图和控制器三个部分,有助于保持代码的清晰和分离。模型负责业务逻辑,视图负责用户界面,控制器则...
### Playframework Cookbook 知识点解析 #### 一、Play Framework 概览 - **框架定位**:Play Framework 是一个轻量级、高效的 Java 和 Scala Web 开发框架,旨在简化 Web 应用程序的开发过程。 - **核心特性**: ...
在这一代码库中,我们可以找到以下关键知识点: 1. **Action Creators**:在Play框架中,Action Creator是处理HTTP请求的核心组件。它们定义了如何将请求转化为业务逻辑并返回响应。代码可能包含不同的Action实例,...
Play Framework 是一个开源的Web应用框架,以Java和Scala为后盾,致力于提供简洁、高效、可测试的开发体验。...通过学习和掌握上述知识点,开发者能够更好地利用Play Framework构建高性能、可维护的Web应用程序。
以下是关于Play Framework v2.8.7的一些核心知识点: 1. **模块化设计**:Play Framework的核心设计理念是模块化,允许开发者按需选择和组合不同的组件,如模板引擎、数据库连接池等,这使得项目结构更加清晰,便于...
Framework 2 的核心知识点 #### 一、Play! Framework 2 概述 Play! Framework 2 是一个用于构建现代 web 应用程序的高性能、轻量级框架。它由 Java 和 Scala 支持,并且特别强调开发者的生产力。通过采用一种叫做...
在这个项目中,我们可以预期找到以下知识点: 1. **多服务架构**:了解如何定义和管理多个独立的服务,每个服务可能对应一个单独的子项目,具有自己的数据库、API接口和业务逻辑。 2. **子模块管理**:学习如何在...