oauth

【Spring Security + OAuth2 + JWT入门到实战】5. 自定义登录成功处理

拥有回忆 提交于 2020-03-02 15:37:29
简介 实现登录成功读取系统配置返回JSON还是页面 配置系统参数 hk: security: browser: loginSucess: /index #登录成功跳转 loginType: JSON #登录成功 失败返回值类型 # loginPage: /demoLogin.html #登录页面 改造BrowserProperties方法 package com.spring.security.properties; import lombok.Data; /** * 浏览器的属性 */ @Data public class BrowserProperties { /** * 登录页面 默认登录页signIn.html */ private String loginPage = "/signIn.html"; /** * 登录成功 */ private String loginSucess = "/index"; /** * 登录成功 失败返回值类型 */ private LoginType loginType = LoginType.JSON; } 创建LoginType枚举 package com.spring.security.properties; /** * 登录类型 * */ public enum LoginType { REDIRECT, JSON }

【Spring Security + OAuth2 + JWT入门到实战】4. 系统配置自定义登录页面

余生长醉 提交于 2020-03-02 15:37:19
简介 前面使用spring security默认的认证流程,处理了自定义的用户数据,密码加密, 但是在实际开发中,肯定是要使用自己开发的页面、登录成功失败的业务处理等。 关于个性化配置全部在spring-security-browser项目的BrowserSecurityConfig完成。 自定义登录页面 创建登录页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>标准登录页面</title> </head> <body> <h2>标准登录页面</h2> <h3>表单登录</h3> <form action="/authentication/form" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="username"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password"></td> </tr> <tr> <td colspan="2"> <button type="submit">登录</button> </td> </tr> </table> </form> </body> </html>

RESTful API 设计规范

无人久伴 提交于 2020-03-02 04:31:32
关于「能愿动词」的使用 为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下: 必须 (MUST) :绝对,严格遵循,请照做,无条件遵守; 一定不可 (MUST NOT) :禁令,严令禁止; 应该 (SHOULD) :强烈建议这样做,但是不强求; 不该 (SHOULD NOT) :强烈不建议这样做,但是不强求; 可以 (MAY) 和 可选 (OPTIONAL) :选择性高一点,在这个文档内,此词语使用较少; 参见:RFC 2119 Protocol 客户端在通过 API 与后端服务通信的过程中, 应该 使用 HTTPS 协议。 API Root URL API 的根入口点应尽可能保持足够简单,这里有两个常见的 URL 根例子: api.example.com/* example.com/api/* 如果你的应用很庞大或者你预计它将会变的很庞大,那 应该 将 API 放到子域下( api.example.com )。这种做法可以保持某些规模化上的灵活性。 Versioning 所有的 API 必须保持向后兼容,你 必须 在引入新版本 API 的同时确保旧版本 API 仍然可用。所以 应该 为其提供版本支持。 目前比较常见的两种版本号形式: 在 URL 中嵌入版本编号 api.example.com/v1/* 这种做法是版本号直观、易于调试;另一种做法是,将版本号放在 HTTP

RESETful API 设计规范

和自甴很熟 提交于 2020-03-02 04:13:01
Resetful API 设计规范 本文是为 大渝网 API 开发规范拟定的一个 beta 版,文章大量参考了目前比较常见的 RESETful API 设计。 为了更好的讨论规范带来的争议及问题,现已把该文档整理并开源到 github ,关于大家补充及提问。 关于「能愿动词」的使用 为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下: 必须 (MUST) :绝对,严格遵循,请照做,无条件遵守; 一定不可 (MUST NOT) :禁令,严令禁止; 应该 (SHOULD) :强烈建议这样做,但是不强求; 不该 (SHOULD NOT) :强烈不建议这样做,但是不强求; 可以 (MAY) 和 可选 (OPTIONAL) :选择性高一点,在这个文档内,此词语使用较少; 参见: RFC 2119 Protocol 客户端在通过 API 与后端服务通信的过程中, 应该 使用 HTTPS 协议。 API Root URL API 的根入口点应尽可能保持足够简单,这里有两个常见的 URL 根例子: api.example.com/* example.com/api/* 如果你的应用很庞大或者你预计它将会变的很庞大,那 应该 将 API 放到子域下( api.example.com )。这种做法可以保持某些规模化上的灵活性。 Versioning 所有的 API 必须保持向后兼容,你 必须

PHP Fatal error:  Cannot use ‘Object‘ as class name as it is reserved

老子叫甜甜 提交于 2020-03-02 02:53:14
这个错误是yii2框架的错误了。也就是说不能使用Object作为类名。 解决方法 1、composer install 2、composer global require "fxp/composer-asset-plugin:^1.4.1" 3、compser update [root @localhost tmp]# composer update Loading composer repositories with package information Updating dependencies (including require-dev) Could not fetch https://api.github.com/repos/jquery/jquery-dist, please create a GitHub OAuth token to go over the API rate limit Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+localhost.localdomain+2018-02-22+1945 to retrieve a token. It will be stored in "/root/.composer/auth.json"

oauth2.0理解与应用

筅森魡賤 提交于 2020-03-01 19:25:43
相关内容整理自阮一峰文档: 理解OAuth 2.0 《OAuth 2.0 教程》 OAuth 是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版,可参考: RFC 6749 。 OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。Oauth的核心就是向第三方应用颁发令牌(token)。 一、应用场景 为了理解OAuth的适用场合,让我举一个假设的例子。 有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"读取自己储存在Google上的照片。 问题是只有得到用户的授权,Google才会同意"云冲印"读取这些照片。那么,"云冲印"怎样获得用户的授权呢? 传统方法是,用户将自己的Google用户名和密码,告诉"云冲印",后者就可以读取用户的照片了。这样的做法有以下几个严重的缺点。 (1)"云冲印"为了后续的服务,会保存用户的密码,这样很不安全。 (2)Google不得不部署密码登录,而我们知道,单纯的密码登录并不安全。 (3)"云冲印"拥有了获取用户储存在Google所有资料的权力,用户没法限制"云冲印"获得授权的范围和有效期。 (4)用户只有修改密码,才能收回赋予"云冲印"的权力

【Spring Security + OAuth2 + JWT入门到实战】3. 自定义用户认证逻辑

感情迁移 提交于 2020-03-01 18:55:32
简介 上一步已经完成登录,使用security默认提供的用户名和密码登录,这一章我们实现自定义用户名和密码登录。 处理用户信息获取逻辑 security默认处理用户信息获取逻辑,要想实现自己的逻辑那就要新建自己的逻辑类然后去实现security默认逻辑 org.springframework.security.core.userdetails.UserDetailsService 在browser项目新建MyUserDetailsService类去实现UserDetailsService重写loadUserByUsername方法 package com.spring.security; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; public class MyUserDetailsService implements UserDetailsService { @Override public

clojure oauth and credentials

泄露秘密 提交于 2020-02-29 17:50:09
问题 I need some help with clojure and oauth. I got stuck at the last step: signing the request with the credentials. (def credentials (oauth/credentials consumer (:oauth_token access-token-response) (:oauth_token_secret access-token-response) :POST "http://twitter.com/statuses/update.json" {:status "posting from #clojure with #oauth"})) (http/put "http://twitter.com/statuses/update.json" :query-params credentials) Thats the example from github. Now, from the flickr API I have this test-url: http:

Spring Boot高频面试题:Spring Boot执行原理

你离开我真会死。 提交于 2020-02-28 03:47:58
之前一篇文章 Spring Boot快速入门 文章中,我们已经体会到Spring Boot的神器,不再像之前Spring那样需要繁琐的XML,甚至几秒钟就能搭建出Spring的项目骨架。接下来我们简单分析Spring Boot的基本原理,让我们揭开它神秘的面纱吧。 1 @SpringBootApplication 首先,我从引导类开始 /** * Spring Boot引导类 * 一点教程网 - www.yiidian.com */ @SpringBootApplication public class MyBootApplication { public static void main(String[] args) { SpringApplication.run(MyBootApplication.class,args); } } 引导类代码很简单,但可以看出最关键的是 @SpringBootApplication 注解以及在main方法中运行的SpringAppliation.run()了,我们进去 @SpringBootApplication 的源码: @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration