CSP
中进行身份验证。这是在 IRIS
中实现 HTTP
身份验证的替代方法。它主要适用于在 Web
应用程序中的请求处理时执行身份验证会很困难或耗时的情况。
在该方法中,通过调用专用的认证类来对用户进行认证。 Web
网关在将原始请求分派至 IRIS
之前执行此检查。当身份验证类成功检查用户的详细信息后,Web
应用程序无需执行任何进一步的检查。
当然,此方法需要承担每个 Web
请求处理两个请求(发送至 IRIS
)的开销:一个用于身份验证,另一个用于实际处理对 CSP
资源的请求。
实现此身份验证方法所需的基本参数显示在以下 Apache
配置块 (httpd.conf
) 中:
<Location "/csp/samples/">
AuthType Basic
AuthName "CSP samples"
require valid-user
AuthCSPEnable On
AuthCSPClass /csp/samples/%CSP.HTTPAuthentication.cls
AuthBasicAuthoritative Off
</Location>
参数AuthType
、AuthName
、require
和AuthCSPEnable
与方法(2
)相同。
附加的 AuthCSPClass
参数定义执行用户身份验证的类。该类必须继承 %CSP.Page
,并使用适当的 CGI
环境变量检查用户的登录详细信息,如果操作成功则返回 200 OK
响应标头,如果操作失败则返回 401 Authorization required
响应标头。
下面显示了一个简单的身份验证类,其中根据 %Users
文件中保存的记录检查用户登录详细信息:
Class %CSP.HTTPAuthentication Extends %CSP.Page
{
ClassMethod OnPreHTTP() As %Boolean
{
Set %response.ContentType = "text/html"
Set %session.Preserve = 0
Quit 1
}
ClassMethod OnPage() As %Status
{
Set crlf=$Char(13,10)
Set type=%request.GetCgiEnv("AUTH_TYPE", "")
Set user=%request.GetCgiEnv("REMOTE_USER", "")
Set pwd=%request.GetCgiEnv("AUTH_PASSWORD", "")
Set httpauth=%request.GetCgiEnv("HTTP_AUTHORIZATION", "")
If httpauth'="" {
Set type=$Piece(httpauth," ",1)
Set user=$system.Encryption.Base64Decode($Piece(httpauth," ",2))
Set pwd=$Piece(user,":",2)
Set user=$Piece(user,":",1)
}
Set auth=0
If $ZConvert(type,"L")'="basic" Set auth=1
If auth=0,user'="",$Get(^%Users(user))=pwd Set auth=1
If auth=1 {
Write "HTTP/1.1 200 OK"_crlf
Write "Content-Type: text/html"_crlf
Write "Content-Length: 0"_crlf
Write "Connection: close"_crlf_crlf
}
Else {
Write "HTTP/1.1 401 Authorization Required"_crlf
Write "WWW-Authenticate: Basic realm=""CSP samples"""_crlf
Write "Content-Type: text/html"_crlf
Write "Content-Length: 0"_crlf
Write "Connection: close"_crlf_crlf
}
Quit $$$OK
}
ClassMethod OnHTTPHeader(ByRef OutputBody As %Boolean) As %Status
{
Quit $$$OK
}
}
对于方法 (1) 和 (3),可以使用 Apache ErrorDocument
指令为登录失败指定自定义错误页面。例如:
ErrorDocument /error/my_authentication_error.html
当然,对于方法 (2),错误消息的文本由 Web
应用程序控制。
文章浏览阅读2.8k次。虚拟机,添加新的硬盘进行分区,格式化,挂载的操作_centos 永久挂载
文章浏览阅读504次。2、只要建立索引就能显著提高查询速度 事实上,我们可以发现上面的例子中,第2、3条语句完全相同,且建立索引的字段也相同;不同的仅是前者在fariqi字段上建立的是非聚合索引,后者在此字段上建立的是聚合索引,但查询速度却有着天壤之别。所以,并非是在任何字段上简单地建立索引就能提高查询速度。 从建表的语句中,我们可以看到这个有着1000万数据的表中fariqi字段有5003个不同记录。在此..._索引对查询效率非常有用,在建表时就应该建好且建完整
文章浏览阅读3.2w次,点赞20次,收藏180次。当前分为以下四个阶段第一阶段库/框架选型(暂定react)第二阶段简单构建优化 NPM管理包node+webpack打包第三阶段JS、CSS模块化开发第四阶段组件化开发 开发过程当中注意:前端安全XSS CSRF攻击等 后期文章中将讲述如何_前端开发流程sop
文章浏览阅读1w次。个人云电脑-推荐方案 - Parsec / FastlinkParsec安利原文局域网游戏串流:让我们都做一回「云」玩家Parsec 是游戏串流工具中的新秀。与其他不同的是,Parsec 推荐 PC-PC 间云游戏,不论是局域网还是公网通吃,这就是 Parsec 比较厉害的地方。两台设备之间的流量不通过 Parsec 云服务器,而是 Peer to Peer,Parsec 自己宣称自己使用了很多技术来保证玩家的联机体验。但国内的家庭宽带一般都是 NAT 环境(部分运营商可以._parsec 局域网
文章浏览阅读148次。在运维人员操作系统时,要接触大量的文件,为了避免忘记文件存放位置的尴尬,就需要我们有一种文件查找工具的帮忙,下面是两个文件查找工具的详解,locate以及find,分别分享给大家。第一款工具: Locatelocate - find files by namelocate的工作依赖于事先构建好的索引库;查找文件时,直接搜索索引库里记载的文件的位置;索引库的构建:系统自动实现(周期性任务);手动更新..._find -name -r
文章浏览阅读6.7k次,点赞7次,收藏87次。SpringSecurity Oauth2 jwtSpringSecurity Oauth2 jwt1 用户认证分析1.1 单点登录1.2 第三方账号登录2 认证解决方案2.1 单点登录技术方案2.2 第三方登录技术方案2.2.1 Oauth2认证流程2.2.2 Oauth2在项目的应用2.3 Spring security Oauth2认证解决方案3 Jwt令牌回顾3.1 令牌结构3.2 生成私钥公钥3.3 基于私钥生成jwt令牌3.3.1导入认证服务3.3.2 认证服务中创建测试类3.4 基于公_spring security 6+oauth2 +jwt+密码认证
文章浏览阅读1.3w次。金山软件办公套件的最新更新 WPS 2016 for Linux,日前发布了几项新功能,性能改进和各种修复。为什么选择WPS办公套件?WPS Office由三个主要组件组成:WPS 文字,WPS 演示和WPS 表格。它看起来非常类似于Microsoft Office! 与Microsoft Office提供的文档格式(包括PPT,DOC,DOCX,XLS和XLSX)完全兼容性。WPS的个人版是供个..._wps office 2016 for linux
文章浏览阅读8k次,点赞8次,收藏95次。用自己数据实现偏最小二乘回归。用Hitters数据集做演示如何使用自己的数据实现偏最小二乘回归。 此数据集有322个运动员的20个变量的数据, 其中的变量Salary(工资)是我们关心的。数据下载百度网盘链接:https://pan.baidu.com/s/13pb7VN_kTzV0hUEsg-1S1A提取码:3333import pandas as pdimport numpy as npfrom sklearn.cross_decomposition import PLSRegression_python 偏最小二乘回归
文章浏览阅读368次,点赞7次,收藏8次。记住常用的基本数据类型int,double熟悉位数: byte8位,int 32位等等记住特性: long需要加L,flaot需要加F,char必须是单引号且只有一个2.1类型转换数据类型转换, 即 它们之间可以变换.2.1.1默认转换按照数据的表示范围, 小范围向大范围转换,可以默认进行// 类型转换默认进行(小转大)long b = a;2.1.2强制转换通过强制转换,可以将数据转换过去,但是有可能丢失精度口诀: 小转大默认进行,大转小强制进行3.1字符串。
文章浏览阅读2.5k次。"h5" : { "sdkConfigs" : { "maps" : {} }, "router" : { "base" : "./" }, "devServer" : { "port" : 8080, "disableHostCheck" : true, "proxy" : { ..._uniapp配置后台ip
文章浏览阅读1k次。1、概述日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息。Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。2、查看所有日志(默认情况下 ,只保存本次启动的日志)[root@CEN..._journalctl -b 0
文章浏览阅读535次。前言: 在属性被 static 修饰后,Spring 便不能直接对变量进行直接注入,这是因为被 static 修饰后,会被放到常量池中,而Spring 需要使用set方法进行注入,这是就需要我们手动进行配置注入成员变量第一步:在类上添加@Component注解,让Spring扫描到这个类第二步:为成员变量添加set方法,注意去掉static关键字,否则会导致注入失败第三步:在set方法上添加@Resource注解,告诉Spring自动注入这个方法/** * @author: mi_静态成员变量怎么注入