oauth

阿里P8看了都说吊的Spring Security实战文档,还不入手一份?

房东的猫 提交于 2020-12-03 11:35:29
第1部分(第1章至第3章) 主要介绍SpringSecurity的基本配置,包括默认配置、简单表单认证,以及基于数据库模型的认证与授权。 初识Spring Security 表单认证 认证与授权 获取完整pdf文档。见下: 第2部分(第4章至第11章) 主要介绍各种定制化的配置场景,剖析Web项目可能遇到的安全问题,并讲解如何使用Spring Security进行有效防护,部分章节还配备了详细的源码导读。 实现图形验证码 自动登录和注销登录 会话管理 密码加密 跨域与CORS 跨域请求伪造的防护 单点登录与CAS HTTP认证 EnableWebSecurity与过滤器链机制 第3部分(第13章) 将登录用户的数据来源从系统内转移到社交平台,详细介绍了OAuth,并使用Spring Social整合Spring Security,实现QQ快捷登录,满足一般性的项目需求。 用Spring Social实现OAuth对接 第4部分(第14章) 带领读者认识Spring Security OAuth框架,并基于该框架完整实现了OAuth客户端、OAuth授权服务器以及OAuth资源服务器三种角色。除此之外,还简单剖析了SpringSecurityOAuth的部分核心源码,以帮助读者更好地理解OAuth框架。 用Spring Security OAuth实现OAuth对接

重写Oauth2生成access_token,实现踢下线功能

醉酒当歌 提交于 2020-12-03 00:17:50
根据项目的特殊需求,需要实现账号在另一端登录时,踢掉该账号在其他端登录的功能 查看源码发现oauth2默认的生成access_token不能达到预期效果. 源码DefaultTokenServices : package org.springframework.security.oauth2.provider.token; import ... public class DefaultTokenServices implements AuthorizationServerTokenServices, ResourceServerTokenServices, ConsumerTokenServices, InitializingBean { private int refreshTokenValiditySeconds = 60 * 60 * 24 * 30; // default 30 days. private int accessTokenValiditySeconds = 60 * 60 * 12; // default 12 hours. private boolean supportRefreshToken = false; private boolean reuseRefreshToken = true; private TokenStore tokenStore;

CompTIA Security+笔记总结 (SY0-501) Chapter 2

霸气de小男生 提交于 2020-11-30 11:04:21
CompTIA Security+ SY0-501 笔记 Chapter 2 Understanding Identity and Access Management 0. Mind Map 1. Identification & AAA Identification occurs when users claim (or profess) their identity with identifiers, such as usernames or email addresses. Users then prove their identity with authentication, such as with a password. In this context, a user’s credential refers to both a claimed identity and authentication. It is worth noting that authentication is not limited to users, but services, processes, workstations, servers, and network devices all use authentication to prove their identities.

第二个android小项目-模仿百度网盘实现一些功能

ⅰ亾dé卋堺 提交于 2020-11-28 13:53:41
写这个项目是为了继续打打android的基础,另外还了解到了一些新方法和小技巧所以想来用用练练手,比如调用百度api来访问个人百度网盘中的头像名称项目文件等等,继续深入还可以在App中修改个人百度网盘中的文件。 话不多说直接开始项目所需要用到的图片资源 点这里 https://github.com/JackySei/baiduimg.git 结构是 首先是登录界面 只是主观简单的模仿了一下,可能有点丑。 activity_main < ? xml version = "1.0" encoding = "utf-8" ? > < androidx . constraintlayout . widget . ConstraintLayout xmlns : android = "http://schemas.android.com/apk/res/android" xmlns : app = "http://schemas.android.com/apk/res-auto" xmlns : tools = "http://schemas.android.com/tools" android : layout_width = "match_parent" android : layout_height = "match_parent" tools : context = "

laravel 5.5 oauth2.0 跨域问题解决方案

孤街醉人 提交于 2020-11-27 04:32:06
一、laravel-Cors 安装 在终端执行安装命令如下: composer require barryvdh/laravel-cors 添加服务提供商 在Laravel配置文件 app.php 的 providers 数组中添加如下配置: Barryvdh\Cors\ServiceProvider::class, 发布配置文件 执行在终端执行发布配置文件命令如下: php artisan vendor:publish --provider= "Barryvdh\Cors\ServiceProvider" 执行后会在laravel目录下的config目录中新增 cors.php 配置文件,如下图 至此 laravel-Cors 安装完成。 备注 什么是跨域 跨域是指从一个域名的网页去请求另一个域名的资源。比如从 www.baidu.com 页面去请求 www.google.com 的资源。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就被当作是跨域 为什么浏览器要限制跨域访问 原因就是安全问题:如果一个网页可以随意地访问另外一个网站的资源,那么就有可能在客户完全不知情的情况下出现安全问题。 为什么要跨域 既然有安全问题,那为什么又要跨域呢? 有时公司内部有多个不同的子域,比如一个是b.a.com ,而应用是放在c.a.com , 这时想从b.a.com去访问

JWT 和 Oauth2 各自用途

孤者浪人 提交于 2020-11-26 04:35:13
适用场景: OAuth2用在使用第三方账号登录的情况(比如使用weibo, qq, github登录某个app) JWT是用在前后端分离, 需要简单的对后台API进行保护时使用.(前后端分离无session, 频繁传用户密码不安全) OAuth2是一个相对复杂的协议, 有4种授权模式, 其中的access code模式在实现时可以使用jwt才生成code, 也可以不用. 它们之间没有必然的联系. 因此,做API开发,用JWT最为合适。 JWT的原理: 传送门 相关实现: 1. 实现单客户端登录的方式 因为JWT的header和payload部分都是可以解密出来的,所以不能放私密信息,所以建议不要放置用户名等信息,可以再用户注册地时候生成一个唯一字符串,作为用户唯一标识uuid,在payload中标识出来,类似于微信的openid。用户从一个客户端登录时,记录下用户的登录时间,精确到毫秒,避免同时点击登录时由于是秒而不能区分不同的客户端。缓存在服务器的时候用uuid作为key,登录时间作为value。客户端调用数据的时候检查登录时间区分不同客户端。 来源: oschina 链接: https://my.oschina.net/u/2524613/blog/1935828

OAuth2认证和jwt机制

烈酒焚心 提交于 2020-11-26 04:24:28
一、OAuth2认证 OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌), 使得第三方应用可以使用该token(令牌)在限定时间、限定范围访问指定资源。 OAuth2相关概念: 资源所有者(resources owner):拥有被访问资源的用户 客户端/第三方应用(client):第三方应用,获取资源服务器提供的资源 授权服务器(authorization server):认证服务器,提供授权许可code、令牌token等 资源服务器(resource server):资源服务器,拥有被访问资源的服务器,需要通过token来确定是否有权限访问 OAuth2几种模式: 获取令牌的方式主要有四种,分别是授权码模式、隐式授权码模式(简单模式)、密码模式和客户端模式。 1)授权码模式(authorization code) 这种模式是最安全的OAuth2的授权模式。设计了auth code,通过这个code再获取token,最后通过token获取资源。支持refresh token。 应用场景: 各大应用内的qq,微信,微博登录等。比如某应用内的qq登录,过程如下: a.用户点击qq登录,会先跳转到qq登录页面,这时请求已经跳转到qq服务器了,然后用户输入账号或者扫码登录,这时所有请求都在qq服务器完成。

OAuth2、Token、JWT

岁酱吖の 提交于 2020-11-26 04:19:45
###参考: 理解OAuth 2.0 Json web token JSON Web Token (JWT) 简介 JWT学习笔记 关于 Token,你应该知道的十件事 Token存储方式解释: 详说 Cookie, LocalStorage 与 SessionStorage ###一句话解释: OAuth是一个授权的开放网络标准,最终目的是取得token(令牌) Token 令牌,视为用户登录成功,通行的唯一令牌 JWT是生成token的轻巧规范,可以结合一起使用 ###知识点: OAuth的授权码模式和简化模式的区别: 授权码模式适用有公网ip服务器的网站,服务器通过授权码拿到token,不在客户端(如url)显示 简化模式会将token直接在url地址显示出来 推荐使用授权码模式 webapi一旦开发无法限制仅自家app使用,但如果能控制app的app key不泄露就可以,比如管理后台 防止第三方使用webapi 友情链接: 服装招标 消防招标 家具招标 医疗招标 安防招标 公安警察招标 交通公路招标 环保招标 园林绿化招标 电梯招标 印刷招标 机电设备招标 来源: oschina 链接: https://my.oschina.net/u/107233/blog/733141

用 Swagger 测试接口,怎么在请求头中携带 Token?

雨燕双飞 提交于 2020-11-25 07:57:40
松哥周末抽空给 Spring Security 系列也录制了一套视频,目录如下: 感兴趣的小伙伴戳这里--> Spring Boot+Vue+微人事视频教程 今天的话题来自一个小伙伴在微信上的提问: 看到这个问题,松哥忽然想到我自己之前写过 Spring Boot+Swagger 的用法: SpringBoot 整合 Swagger2 也写过 OAuth2 + Jwt 的用法: 想让 OAuth2 和 JWT 在一起愉快玩耍?请看松哥的表演 但是还没有将这两个结合在一起写过,所以小伙伴们对此有了疑问,想一想这还是一个非常常见的问题,因为现在使用令牌登录的场景越来越多,在这种情况下,如果使用 Swagger 来测试接口,要怎么在请求头中携带 Token 呢?今天松哥就来和大家聊一聊。 1.项目规划 如果小伙伴们没有看过松哥之前发的 OAuth2 系列文章,建议一定先看下(公众号江南一点雨后台回复 OAuth2 获取),再来看本文内容,否则接下来的内容可能会犯迷糊。 这里松哥搭建一个 OAuth2+JWT 的环境来做演示。一共搭建两个服务: 服务名 端口 备注 auth-server 8080 授权服务器 user-server 8081 资源服务器 我稍微解释一下: auth-server 就是我的资源服务器,用来颁发 JWT 令牌。 user-server 则是资源服务器,访问

laravel源码解析

纵然是瞬间 提交于 2020-11-25 04:53:30
本专栏系列文章已经收录到 GitBook laravel源码解析 Laravel Passport——OAuth2 API 认证系统源码解析(下) laravel源码解析 Laravel Passport——OAuth2 API 认证系统源码解析(上) laravel源码解析 Laravel Broadcast——广播系统源码剖析 laravel源码解析 Laravel Queue——消息队列任务处理器源码剖析 laravel源码解析 Laravel Queue——消息队列任务与分发源码剖析 laravel源码解析 Laravel Event——事件系统的启动与运行源码分析 laravel源码解析 Laravel Session——session 的启动与运行源码分析 laravel源码解析 Laravel Database——Eloquent Model 更新关联模型 laravel源码解析 Laravel Database——Eloquent Model 关联模型加载与查询 laravel源码解析 Laravel Database——Eloquent Model 模型关联初始化源码分析 laravel源码解析 Laravel Database——Eloquent Model 源码分析(下) laravel源码解析 Laravel Database——Eloquent Model