显示导航

365bet地区基本认证

了解如何使用基本HTTP身份验证方案保护365bet地区应用的安全

s塞尔吉奥·德尔阿莫

365bet地区版本 4.0.1

入门

RFC定义基本超文本传输​​协议HTTP身份验证方案,该方案将凭据作为使用Base编码的用户ID密码对进行传输

在本指南中,您将创建一个365bet地区应用并使用HTTP Basic Auth保护它的安全。

您将需要什么

要完成本指南,您将需要以下内容

  • 花些时间在你手上

  • 体面的文本编辑器或IDE

  • 安装了JDK或更高版本JAVA首页适当配置

如何完成指南

要开始,请执行以下操作

要么

365bet地区指南存储库包含两个文件夹

  • 初始初始项目通常是一个简单的365bet地区应用程序,其中包含一些其他代码,可以帮助您快速入门

  • 完成一个完整的示例它是按照指南中介绍的步骤进行操作并将这些更改应用于文档的结果。初始

要完成指南,请转到初始

  • 光盘进入grails指南grails basicauth初始

并按照下一节中的说明进行操作

您可以直接前往完成的例子如果你光盘进入grails指南grails basicauth完成

如果要从头开始,请使用创建新的365bet地区应用程序365bet地区应用伪造.

伪造默认

编写应用

使用创建一个应用休息api轮廓

grails创建应用程序示例配置文件rest api

添加安全依赖性

我们要做的第一件事是添加弹簧安全芯365bet地区插件建立gradle.

建立gradle
编译'org grails插件春季安全核心RC'

然后运行命令

grails的快速入门示例grails用户角色

该命令生成以下域类

  • grails应用程序域示例grails用户

  • grails应用程序域示例grails角色

  • grails应用程序域示例grails UserRole

密码编码器监听器

src主要groovy示例grails UserPasswordEncoderListener

和默认的安全配置

  • grails应用配置会议应用程序

修改生成的应用程序启用基本身份验证

grails应用配置会议应用程序
grails插件springsecurity useBasicAuth真正

控制者

创建家庭控制器返回认证用户的用户名

grails应用程序控制器示例grails HomeController常规
例子进口 常规转换CompileStatic
进口 grails插件springsecurity SpringSecurityService
进口 grails插件springsecurity注解安全
进口 grails插件springsecurity userdetails 365bet地区User

静态编译
担保的('isAuthenticated')
 家庭控制器 {

    静态的responseFormats'json'SpringSecurityService springSecurityService定义 指数() {
        [那么loggingUsernameloggingUsername如果springSecurityService主体空值 ) {
            返回 空值
        }
        如果springSecurityService主体实例  ) {
            返回springSecurityService主体如果springSecurityService主体实例365bet地区User返回365bet地区User springSecurityService主体用户名空值
    }

}

观看次数

借助以下命令将控制器输出呈现为JSON有效负载JSON视图.

grails应用程式检视首页索引gson
模型名称json用户名

GORM数据服务

GORM数据服务通过添加使用GORM逻辑自动实现抽象类或接口的功能,使工作脱离了已实现的服务层逻辑

创建GORM数据服务以简化用户域类CRUD操作

grails应用程序服务示例grails UserDataService常规
例子进口 grails gorm services服务

服务用户接口UserDataService用户保存用户名密码布尔值已启用布尔值accountExpired布尔值帐户被锁定布尔值密码已过期虚空删除可序列化ID整型计数

测试

创建一个测试,以通过基本身份验证验证用户身份验证流程

src集成测试groovy示例grails HomeControllerSpec groovy
例子进口 grails测试mixin集成集成
进口 365bet地区测试Spock一次
进口 io micronaut http HttpRequest
进口 io micronaut http HttpResponse
进口 io micronaut http HttpStatus
进口 io micronaut http客户端HttpClient
进口 spock lang规格

积分
 家庭控制器规格 延伸规范UserDataService userDataService HttpClient客户端之前
    虚空在里面的baseUrl"HTTP本地主机$服务器端口"
        这个HttpClient的客户创造的baseUrl的toURL定义 "验证基本身份验证是否可能"() {
        给定:
        最后 用户名'夏洛克'
        最后 密码'初级'

        什么时候用户用户userDataService保存用户名密码真正, , , , )

        然后userData服务计数旧的userData服务计数1

        什么时候HttpRequest请求HttpRequest GET""basicAuth用户名密码HttpResponse地图rsp客户端到阻止交换请求地图)

        然后rsp状态HttpStatus确定rsp主体用户名用户名清理userDataService删除用户ID

要运行测试Gradlew测试

下一步

基本和摘要身份验证365bet地区 Springs Security Core插件文档的“资源”部分以了解基本身份验证可用的不同配置选项

您需要365bet地区帮助吗

OCI赞助了本指南的创建OCI提供了几种365bet地区服务:

免费咨询

OCI 365bet地区团队包括365bet地区联合创始人Jeff Scott Brown和Graeme Rocher检查我们的365bet地区课程并向发展和维护365bet地区的工程师学习

Grails OCI团队