首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OAuth2.0认证解析

一、 什么OAuth2.0 OAuth一个关于授权(authorization)的开放网络标准,全世界得到广泛应用,目前的版本是2.0版。 OAuth(开放授权)一个开放标准。...资源服务器确认令牌无误,同意向客户端开放资源。 四、 客户端注册 应用 OAuth2.0之前,必须在授权服务中注册应用。平台中要求开发者提供如下所示的授权设置项。...应用唯一ID(client_id) 应用的唯一标示,服务器唯一存在的分配给一个应用的ID,公开透明的字符串,授权服务使用该字符串来标识应用程序,并且还用于构建呈现给用户的授权 url 。...请求的响应:一个访问令牌、一个授权码,或两者都有。请求访问令牌参数值必须设为“token”,请求授权码参数值必须设为“code”,或者使用参数值为“code_and_token”同时请求两者。...invalid_grant 提供的访问许可是无效的、过期的或已撤销的(例如,无效的断言,过期的授权令牌错误的终端用户密码证书,或者不匹配的授权码和重定向URI)。

4K10

人人都应该掌握点日志规范

程序员这个群体,我觉得普通和优秀最大的区别就是『浮躁』二字。 新技术层出不穷,很多人觉得抓住新技术就能抓住知识,抓住地位,最后其实什么都抓不住。...错误例子:  类名方法名输入参数输出参数 (不用分隔符) 类名#方法名 输入参数|输出参数 (用多总分隔符) 二. 避免重复记录 一次请求,同样的内容理论上只需要记录一次。比如接口传入的参数。...服务接口执行过程应该只记录重要的中间处理数据,比如调用了第三接口,可以记录第三接口的请求和返回数据。...如果只记录微信支付失败这几个字毫无意义的,必须要有上下文这几个文字信息才有意义。 PS:最优秀的做法不要有自定义日志,如果判断到了错误信息,应该直接返回给接口调用,由上层统一记录日志。 八....日志最容易泄露的数据,很难去保护,如果哪天大量用户的手机号等信息泄露可能就是日志未脱敏惹的祸,这个严重的大锅只能自己背。 九. 最后 大量地输出无效日志不利于系统性能提升,也不利于快速定位错误点。

1.8K50
您找到你想要的搜索结果了吗?
是的
没有找到

Spring Boot出现错误:javax.servlet.ServletException: Circular view path : woul

HTTP method names​​的异常。这个异常表示法名发现了非法字符。本文将介绍这个异常的原因以及如何解决它。...异常原因在HTTP通信中,请求方法名通常是由大写字母组成的,比如GET、POST、PUT等。然而,有时我们可能会在代码错误地使用了其他字符作为方法名,比如空格、特殊符号或非ASCII字符。...HTTP method names​​异常,我们需要检查代码HTTP请求方法名,确保它们只包含合法的字符。以下一些常见的解决方法:1....检查代码的方法名检查代码的所有HTTP请求方法名,确保它们只包含合法的字符。删除或替换非法字符,比如空格或特殊符号。2....HTTP method names​​​异常表示HTTP请求方法名发现了非法字符

28640

从协议入手,剖析OAuth2.0(译 RFC 6749)

OAuth,通过发行不同的访问令牌(包括资源访问范围、生命周期、其他访问属性),而不是资源本身,来限制第三应用程序访问受保护资源(资源拥有者保护并宿主资源服务器)的粒度和期限,而不是直接把凭证(...1.4 访问令牌(Access Token)        访问令牌用于访问受保护资源的凭证。访问令牌表示向客户机颁发的授权的字符串,该字符串通常对客户端不透明。...重定向端点的响应,客户端不应该包含任何第三的脚本,相反它应该提取出凭证,然后重定向用户代理到另外的不会暴露凭证信息的端点。如果,包含第三脚本,客户端必须保证首先执行自己的脚本。    ...server_error(服务器错误):授权服务器遇到意外情况,阻止它执行请求(因为当重定向时,一个500内部错误Http状态码不能返回给客户端,所以这个错误必须的。)。                  ..." 格式和utf-8字符编码)HTTP请求实体。。

4.7K20

什么跨域及怎么解决跨域问题?

大家好,又见面了,我你们的朋友全栈君。 什么跨域? 这篇博文解释的挺清楚,我直接引用 什么跨域?怎么解决跨域问题?...: func1(111) 可想而知结果会打印出 111,也就是说a页面获取到了jsonp.js的数据,数据是以调用方法并将数据放到参数返回来的 但是这样获取数据,必须a.html的方法名与js的引用方法名相同...但是下面的赋值就会出来”参数无效”的错误: 代码如下: javascript:alert(document.domain = "cctv.net"); //参数无效 javascript:alert(document.domain...(强制用JS将它们改成相等的域的话会报跟上面一样的”参数无效错误。”) 所以如果在a.html里引入aaa.com里的另一个网页,不会有这个问题的,因为域相等。...前提:跨域和被跨域的一都是你可以控制的,一写发送消息的,另一写接收消息方法 注意这跨域的局限性在于必须在同一个window对象上,也就是说哪个window发送消息,只有本window才能接收到。

10.2K13

json-rpc协议「建议收藏」

; 1.客户端需要向服务器发送请求 请求对象包含: jsonrpc: 指定JSON-RPC协议版本的字符串,必须准确写为“2.0” method: 包含所要调用方法名称的字符串,以...id: 已建立客户端的唯一标识id,值必须包含一个字符串、数值或NULL空值。如果不包含该成员则被认定为一个通知。...协议版本的字符串,必须准确写为“2.0” result: 该成员成功时必须包含。...当调用方法引起错误必须不包含该成员。 服务端的被调用方法决定了该成员的值。 error: 该成员失败必须包含。 当没有引起错误的时必须不包含该成员。...若在检查请求对象id时错误(例如参数错误无效请求),则该值必须为空值。 协议已经介绍完了,我们不在意传输细节,socket也好,http也好都无所谓,它只是一个约定俗成的传json的协议。

57310

从0开始构建一个Oauth2Server服务 AccessToken

访问令牌不必是任何特定格式,尽管对不同的选项有不同的考虑,这将在本章后面讨论。就客户端应用程序而言,访问令牌一个不透明的字符串,它会接受任何字符串并在 HTTP 请求中使用它。...资源服务器需要了解访问令牌的含义以及如何验证它,但应用程序永远不会关心理解访问令牌的含义。 访问令牌传输和存储过程必须保密。唯一应该看到访问令牌的各方应用程序本身、授权服务器和资源服务器。...如果您正在实施自编码授权代码,如我们的示例代码中所示,您将需要跟踪令牌的生命周期内使用的令牌。实现此目的的一种方法代码的生命周期内将代码缓存在缓存。...invalid_scope– 对于包含范围(密码或 client_credentials 授权)的访问令牌请求,此错误表示请求的范围值无效。...整个错误响应以 JSON 字符串形式返回,类似于成功响应。下面错误响应的示例。

21650

JSON-RPC 2.0 规范(中文版)

4.请求对象 发送一个请求对象至服务端代表一个rpc调用, 一个请求对象包含下列成员: jsonrpc 指定JSON-RPC协议版本的字符串,必须准确写为“2.0” method 包含所要调用方法名称的字符串...id 已建立客户端的唯一标识id,值必须包含一个字符串、数值或NULL空值。如果不包含该成员则被认定为一个通知。该值一般不为NULL[1],若为数值则不应该包含小数[2]。...响应表示为一个JSON对象,使用以下成员: jsonrpc 指定JSON-RPC协议版本的字符串,必须准确写为“2.0” result 该成员成功时必须包含。...当调用方法引起错误必须不包含该成员。 服务端的被调用方法决定了该成员的值。 error 该成员失败必须包含。 当没有引起错误的时必须不包含该成员。...该成员参数值必须为5.1定义的对象。 id 该成员必须包含。 该成员值必须于请求对象的id成员值一致。 若在检查请求对象id时错误(例如参数错误无效请求),则该值必须为空值。

2.7K20

系统的讲解 - PHP 接口签名验证

概览 工作,我们时刻都会和接口打交道,有的调取他人的接口,有的为他人提供接口,在这过程中肯定都离不开签名验证。...设计签名验证的时候,一定要满足以下几点: 可变性:每次的签名必须不一样的。 时效性:每次请求的时效性,过期作废。 唯一性:每次的签名唯一的。 完整性:能够对传入数据进行验证,防止篡改。...缺点 发送和接收方必须商定好密钥,然后使双方都能保存好密钥,密钥管理成为双方的负担。 应用场景 相对大一点的数据量或关键数据的加密。... PHP7.2 版本已经被弃用了,新版本中使用 openssl_encrypt 和 openssl_decrypt 两个方法。...将日志写到文件,查看也不是很方便。 我们二次开发一个新系统的时候,想查看执行了哪些Sql语句及程序的warning,notice等错误信息。

1.8K31

系统的讲解 - PHP 接口签名验证

概览 工作,我们时刻都会和接口打交道,有的调取他人的接口,有的为他人提供接口,在这过程中肯定都离不开签名验证。...设计签名验证的时候,一定要满足以下几点: 可变性:每次的签名必须不一样的。 时效性:每次请求的时效性,过期作废。 唯一性:每次的签名唯一的。 完整性:能够对传入数据进行验证,防止篡改。...缺点 发送和接收方必须商定好密钥,然后使双方都能保存好密钥,密钥管理成为双方的负担。 应用场景 相对大一点的数据量或关键数据的加密。... PHP7.2 版本已经被弃用了,新版本中使用 openssl_encrypt 和 openssl_decrypt 两个方法。...将日志写到文件,查看也不是很方便。 我们二次开发一个新系统的时候,想查看执行了哪些Sql语句及程序的warning,notice等错误信息。

2K50

SpringBoot2.x升级踩坑-一个下划线引发的血案

报错信息 报错信息就已经很直白的告诉了我们错误原因: 配置属性名称“com_shen”无效 无效字符:'_', 原因:规范名称应为 kebab-case(用'-'分隔),小写字母数字字符,并且必须以字母开头...这个方法名叫"绑定",方法传入了 bean、beanName 和 annotation 的信息,经验告诉我这个方法大概率就是负责解析@ConfigurationProperties,进行属性绑定。...通过 debug 发现的确是这个方法进行属性绑定。...对象ConfigurationPropertyName.of(name),通过方法名我们可以猜测,这个方法可能负责解析 Configuration Property Name,项目启动的报错信息很有可能这个方法抛出的...用户创建的名称可以包含字符“ a-z”,“ 0-9”)和“-”,它们必须为小写字母,并且必须以字母数字字符开头。“-”仅用于格式化,即“ foo-bar”和“ foobar”被认为等效的。

1.7K20

嘎嘎基础的JavaWeb(下)

,就加入到这个事务,如果调用b方法时没事务,就再现有的方法运行NOT_SUPPORTED不支持事务,无事务状态下运行,如果当前存在已有事务,则挂起当前事务如果调用 b 方法的时候已经发现存在事务了...Bean 不需要配置 scope 属性13.2.3 第三 bean@Bean:如果要管理的 bean 对象来自于第三(不是自定义的),无法用 @Component 及衍生注解声明 bean 的,...-- 父工程的相对路径 --> 注意:子工程,配置了继承关系之后,坐标的 groupId 可以省略的,因为会自动继承父工程的relativePath 指定父工程的 pom...maven ,可以父工程的 pom 文件通过来统一管理依赖版本,子工程中就不用指定 version 版本号了:直接依赖...,并无实际的模块内容不同点:聚合聚合工程配置关系,聚合可以感知到参与聚合的模块有哪些继承子模块配置关系,父模块无法感知哪些子模块继承了自己

13200

Android 媒体开发之MediaPlayer状态机接口方法实例解析

MediaPlayer 状态; — 无效状态 : Error 状态, Error 状态调用该方法, 会进入 Error 状态; (2) 获取文件时长 方法名称 : public int getDuration...MediaPlayer 状态; — 无效状态 : Error 状态, Error 状态调用该方法, 会进入 Error 状态; (4) 检查 MediaPlayer 是否循环 方法名称 :...地址 当做数据源; 参数解析 : String path, 媒体资源的 文件路径 或者 http/rtsp url 地址路径; 方法的有效状态和无效状态 : 只有 Idle 状态下才能设置数据源,...设置音频流类型, 音频类型 AudioManager 定义, 该方法必须在 prepare() 或者 prepareAsync() 方法之前调用; 方法的有效状态和无效状态 : — 有效状态 :...无效状态 : Error 状态, Error 状态调用该方法, 会进入 Error 状态; (2) 设定播放载体 方法名称 : public void setDisplay (SurfaceHolder

2.3K42

iOS与JS的交互

因为查询文档我们就可以发现UIWebView,native有直接调用JS的方法, 但是JS却没有直接调用native的方法。...代理方法拦截Url,识别判断 2. Block传值,实现JS调用OC 3. 模型实现,JS直接用oc方法名来调用oc方法 4....使用第三工具类:WebViewJavascriptBridge 下面就来简单介绍一下上述方法的简单实用 1.代理方法拦截Url,识别判断 这种方法原理很简单,UIWebView的界面响应会调起下面的代理方法...shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 该方法我们可以识别网页链接的特殊字段...oc方法 这种方法的优点在于,JS可以直接用oc方法名来调用oc方法,这样就类似于安卓的addJavaScriptInterface方法,使用此方法时仍然要导入JavaScriptCore //第一步

4K70

《JavaSE-第五章》之C的函数-java的方法

博客主页:KC老衲爱尼姑的博客主页 博主的github,平常所写代码皆在于此 共勉:talk is cheap, show me the code 作者爪哇岛的新手,水平很有限,如果发现错误,一定要及时告知作者哦...感谢感谢 1.什么方法? 方法程序具有独立功能的代码块的封装。...1.1法存在的意义 哲学存在就有意义,那么方法也有它存在的意义,如下。 能够模块化的组织代码(当代码规模比较复杂的时候). 做到代码被重复使用, 一份代码可以多个位置使用....return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。 方法不调用就不执行, 调用时必须严格匹配方法的参数情况。...同一个方法名字, 提供不同版本的实现, 称为 方法重载 5.1法重载的识别技巧 只要是同一个类,方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管!

14510

android代码混淆

分析class 的同时,他还有其他两个功能,删除无效代码(Shrinking 收缩),和代码进行优化 (Optimization Options)。...三, 我们的java 元素名称是配置文件配置好的。 所以使用proguard时,我们需要有个配置文件告诉proguard 那些java 元素不能混淆的。...proguard 问题和风险 代码混淆后虽然有混淆优化的好处,但是它往往也会带来如下的几点问题 1,混淆错误,用到第三库的时候,必须告诉 proguard 不要检查,否则proguard 会报错。...2,运行错误,当code 不能混淆的时候,我们必须要正确配置,否则程序会运行出错,这种情况问题最多。 3,调试苦难,出错了,错误堆栈混淆后的代码 ,自己也看不懂。...官方地址http://proguard.sourceforge.net。上面的配置文件参数可以在这里查阅。

1.5K80

Java与lua互相调用简单教程

整理出来就是如下几点 查找并调用指定的 Java 方法 检查调用结果,并从 Java 方法获取返回值 将 Lua function 作为参数传递给 Java 方法 Java 方法调用 Lua function...这里要说的 luaj 可以根据调用参数自动猜测方法签名所以示例我们并没有写签名。 示例中指定参数: local args = {n} luaj 根据这 个参数,会构造出正确的方法签名。...注意:这里要说的 Lua 里没有办法准确判断一个数值整数还是浮点数,所以 luaj 猜测方法签名时,假定所有的数值都是浮点数。...luaj.callStaticMethod()会返回两个值: 当成功时,第一个值为 true,第二个值 Java 方法的返回值(如果有)。 当失败时,第一个值为 false,第二个值错误代码。...然后直接把 lua 代码当做 String 字符串内嵌到 Java 代码: String luaStr = "print 'hello,world!'"

1.8K21

微信认证开发教程

“那你就是非对称加密了” “补充一个数字签名和数字证书” 令牌(Token):可以理解为钥匙,它是一串字符串。...Nonce,将其与用户密码串联在一起并进行非可逆加密(MD5、SHA1等等),然后将这个加密后的字符串和用户名、Nonce、加密算法名称一起发回服务器;服务器使用接收到的用户名到数据库搜索密码,然后跟客户端使用同样的算法对其进行加密...这样就解决了用户密码明文被窃取的问题,攻击者就算知道了算法名和nonce也无法解密出密码。 每个nonce只能供一个用户使用一次,这样就可以防止攻击者使用重放攻击,因为该Http报文已经无效。...所以,还需要加上另外一个参数Timestamp(时间戳) Timestamp根据服务器当前时间生成的一个字符串,与nonce放在一起,可以表示服务器某个时间点生成的随机数。...要解决这个问题,就需要给时间戳设置一个超时时间,比如说将时间戳与服务器当前时间比较,如果相差一天则认为该时间戳无效的。

1.5K80

多线程的基础学习

进程:一个正在执行的程序, 每一个进程执行都有一个执行顺序,该顺序一个执行路径,或者叫一个控制单元。 线程:进程的一个独立的控制单元, 线程控制中进程的执行。 提高效率,各自相互运行!...问题的原因: 当多条语句操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完, 另一个线程参与进来执行,导致共享数据的错误。...解决方法: 对多条操作共享数据的语句时,只能让一个线程都执行完,执行过程,其他线程不可以参与运行 java对于多线程的安全问题提供了专业的解决方式:就是同步代码块 (同步的前提: 1>必须要有两个或者两个以上的线程...所以同步函数使用的锁就是this(对象一定要一样) 3.如果同步函数被被静态方法修饰后,使用的锁是什么呢? 通过验证,发现不在this,因为静态方法也不刻意定义this. 那么谁?...,替换了Condition对象 将对象可以Lock锁 进行获取 该实例,实现了本只唤醒对方的操作!

39170
领券