oauth

MSCode微服务平台框架基于SpringCloud、SpringBoot、Activiti7工作流和阿里巴巴组件,快速开发办公OA、CRM、ERP、电商、信息管理等业务系统

我怕爱的太早我们不能终老 提交于 2020-08-11 14:43:29
MSCode微服务平台框架 mscodecloud.com 是基于Spring Cloud、Spring Boot、Activiti7工作流和Spring Cloud Alibaba阿里巴巴组件,提供所有源码和详尽文档的企业级快速开发平台。 企业级微服务分布式 : 基于 Spring Cloud Hoxton.SR6 、 Spring Boot 2.3.2 和 Spring Cloud Alibaba阿里巴巴组件 实现企业级微服务架构,支持分布式事务,保障业务高性能、高并发、高可用。 所有源码全部提供 : 提供所有源码,易用稳定可扩展。 二次开发各种企业项目,例如办公(OA)、电商、金融、财务、教育、医疗、信息管理(MIS)、客户关系(CRM)和企业资源计划(ERP)等业务系统。根据业务场景和系统状况,提供定制化的架构设计。 多平台快速开发 : 提供Spring Cloud & Spring Boot 微服务分布式版本 和Spring Boot 单体式版本 ,使用 代码生成器 快速开发。 基于稳定生产的商业项目升级优化而来,更加贴近企业级需求,快速 稳定 高效!!! 1、企业级SpringCloud全套解决方案:采用前沿而又通过生产检验的技术,在享受新技术开发带来便利的同时,又能体验新技术的核心思想与最佳实践。 2、Activiti7工作流协同办公

SpringBoot实现本地存储文件上传及提供HTTP访问服务

和自甴很熟 提交于 2020-08-11 11:22:57
笔者计划为大家介绍分布式文件系统,用于存储应用的图片、word、excel、pdf等文件。在开始介绍分布式文件系统之前,为大家介绍一下使用本机存储来存放文件资源。 二者的核心实现过程是一样的: 上传文件,保存文件(本节是本地磁盘) 返回文件HTTP访问服务路径给前端,进行上传之后的效果展示 一、复习 服务端接收上传的目的是提供文件的访问服务,那么对于SpringBoot而言,有哪些可以提供文件访问的静态资源目录呢? classpath:/META-INF/resources/ , classpath:/static/ , classpath:/public/ , classpath:/resources/ 这是之前我们为大家介绍的内容,从这里看出这里的静态资源都在classpath下。那么就出现问题: 应用的文件资源不能和项目代码分开存储(你见过往github上传代码,还附带项目文件数据的么?) 项目打包困难,当上传的文件越来越多,项目的打包jar越来越大。 代码与文件数据不能分开存储,就意味着文件数据的备份将变得复杂 二、文件上传目录自定义配置 怎么解决上述问题?别忘记了spring boot 为我们提供了 使用 spring.resources.static-locations 配置自定义静态文件的位置。 web: upload-path: D:/data/ spring:

.NET WEB API关键过程 思维导图

南楼画角 提交于 2020-08-11 04:19:25
背景说明 近期在去面试的过程中,被问及有关WEB API的一些特性,一时竟不知该如何回答,故根据自己已知的知识,加上网上搜索的,详细列举了一下,期望对WEB API有一个比较开阔和全面的认知。 关键要素 在客户端发送一个请求,到服务端接收并处理请求,然后将数据返回,这样一个看似简单的过程中,究竟有哪些要素是我需要去留心的呢? 我在整理的过程当中,发现了这样一些基本要素,是需要去特别留心: 1. 接口规范 2. 鉴权方式 3. 关键对象 4. 生命周期 5. 接口工具 接口规范 接口规范定义了在API访问的过程中,数据交互约定以什么样的方式进行。下面是我所了解的几种接口规范: 1.1.RESTful 1.1.1.字义解释 ▣ REST(representational state transfer),直译过来是“表述性状态传输”,至于ful,百度翻译是“满满的”、“充满...的”。这里所说的“state”,就是HTTP请求当中的 GET、PUT、POST 、DELETE,表述了对资源的处理意向。 1.1.2.规范详情 ▣ 参考 RESTful 架构详解 1.2.OpenAPI 1.2.1.字义解释 ▣ OpenAPI从字义上解释,是开放API,也就是说是开放给别人看的,所以接口参数具有可阅读性,能够生成可阅读的文档。它也具体到了业务层面的参数定义规范。 1.2.2.广义解释 ▣

asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权

醉酒当歌 提交于 2020-08-11 02:08:56
开发了一个公司内部系统,使用asp.net core 3.1。在开发用户认证授权使用的是简单的cookie认证方式,然后开发好了要写几个接口给其它系统调用数据。并且只是几个简单的接口不准备再重新部署一个站点,所以就直接在MVC的项目里面加了一个API区域用来写接口。这时候因为是接口所以就不能用cookie方式进行认证,得加一个jwt认证,采用多种身份验证方案来进行认证授权。 认证授权 身份验证是确定用户身份的过程。 授权是确定用户是否有权访问资源的过程。 在 ASP.NET Core 中,身份验证由 IAuthenticationService 负责,而它供身份验证中间件使用。 身份验证服务会使用已注册的身份验证处理程序来完成与身份验证相关的操作。 认证-->授权 关于认证授权我们要区分认证和授权是两个概念,具体可查看MSDN官方文档也可以搜索其它文章看看,讲的很多。其中包括OAuth 2.0 以及jwt的相关知识都有很多资料并且讲解的很好。 身份认证 身份验证方案由 Startup.ConfigureServices 中的注册身份验证服务指定: 方式是在调用 services.AddAuthentication 后调用方案特定的扩展方法(例如 AddJwtBearer 或 AddCookie)。 这些扩展方法使用 AuthenticationBuilder.AddScheme

第三方登陆--QQ登陆

冷暖自知 提交于 2020-08-11 01:23:16
从零玩转第三方QQ登陆 在真正开始对接之前,我们先来聊一聊后台的方案设计。既然是对接第三方登录,那就免不了如何将用户信息保存。首先需要明确一点的是,用户在第三方登录成功之后, 我们能拿到的仅仅是一个代表用户唯一身份的ID(微博是真实uid,QQ是加密的openID)以及用来识别身份的accessToken,当然还有昵称、头像、性别等有限资料, 对接第三方登录的关键就是如何确定用户是合法登录,如果确定这次登录的和上次登录的是同一个人并且不是假冒的。其实这个并不用我们特别操心,就以微博登录为例, 用户登录成功之后会回调一个code给我们,然后我们再拿code去微博那换取 accessToken ,如果这个code是用户乱填的,那这一关肯定过不了,所以,前面的担心有点多余,哈哈。 1. 认识Oauth2.0 现在很多网站都要不管是为了引流也好,为了用户方便也好一般都有第三方账号登陆的需求,今天以QQ登陆为例,来实现一个最简单的第三方登陆。 目前主流的第三方登录都是依赖的Oauth2.0实现的,最常见的就是在各种中小型网站或者App中的QQ登录,微信登录等等。所以我建议想要学习和实现第三方登录同学去了解下这个协议。 1.2 必须要域名并且进行备案 比如我的域名: https://yangbuyi.top/ 因为腾讯有一个域名认证机制啥的。。。。。。 2.实名认证

恕我直言你可能真的不会java第1篇:lambda表达式会用了么?

感情迁移 提交于 2020-08-11 01:15:36
本文配套教学视频: B站观看地址 在本号之前写过的一些文章中,笔者使用了lambda表达式语法,一些读者反映说代码看不懂。本以为java 13都已经出了,java 8中最重要特性lambda表达式大家应该都掌握了,实际上还是存在大量的程序员没有使用java8,还有的使用了java8也不会使用lambda表达式。 Lambda表达式是Java 8最流行最常用的功能特性。它将函数式编程概念引入Java,函数式编程的好处在于可以帮助我们节省大量的代码,非常方便易用,能够大幅度的提高我们的编码效率。在本文中,我们将介绍lambda表达式是什么,并将传统的java代码写法转换为lambda表达式写法,大家可以通过示例了解lambda表达式都对传统代码做了哪些简化。 本文配套教学视频: B站观看地址 一、接口定义 首先,我们要明白lambda表达式在表达什么?答案就是lambda表达式表达接口函数的实现,所以我们有必要做一下准备工作。在传统的开发方式下,我们不习惯将代码块传递给函数。我们所有的行为定义代码都封装在方法体内,并通过对象引用执行,就像使用下面的代码一样: public class LambdaDemo { //函数定义 public void printSomething(String something) { System.out.println(something); } /

认证(Authentication)和授权(Authorization)总结

女生的网名这么多〃 提交于 2020-08-10 20:58:49
身份认证 是验证你的身份,一旦通过验证,即启用授权。你所拥有的身份可以进行哪些操作都是由 授权 规定。例如,任何银行客户都可以创建一个账户(如用户名),并使用该账户登录该银行的网上服务,但银行的授权政策必须确保只有你有权限访问自己的网上个人账户,当然前提是你得先通过身份认证。 简单来说就是: 认证回答「你是谁」的问题,授权规定「你能干什么」。 认证Authentication 认证意味着证实某个用户是他所声明的那个人。 Username and Password Credentials Multi-Factor Authentication Token Based Credentials a Better Alternative to Username Password Credentials Federated Identity Single Sign-On Single Experience WS-Security With SAML Assertions OpenID Connect with JWT ID Tokens Single Sign-On Multi-Experience SAML CAS 授权Authorization 授权意味决定一个身份确定的用户能够访问那些资源。 本质上可以授权可以理解为是访问控制,是系统对访问某些数据或执行某个操作的权限的控制。 Role

allow or deny login by keycloak groups when logging in

谁都会走 提交于 2020-08-10 18:55:32
问题 I develop applications(SPA Application + API server and windows application) to use OpenID using keycloak. I want to control login when logging in with keycloak using keycloak groups (https://www.keycloak.org/docs/latest/server_admin/#groups). For example, is the following application specification possible? User A -> Group1 and Group2 User B -> Group1 Client A(SPA Application) -> Allow Group1 Client B(Windows Application) -> Allow Group2 results: User A -> Allow to use the SPA Application

ASP.NET Web API Demo OwinSelfHost 自宿主 Swagger Swashbuckle 在线文档

℡╲_俬逩灬. 提交于 2020-08-10 12:55:32
新建Web API工程 选Empty,勾选Web API,不要选择Web API,那样会把MVC勾上,这里不需要MVC Web API工程属性 XML文件用于生成在线文档 新建Windows服务作为Web API的宿主 WebApiHost工程属性 控制台应用程序方便调试 Windows服务安装Microsoft.AspNet.WebApi.OwinSelfHost 工程WebApiDemo需要引用Microsoft.Owin.dll WebApiDemo安装Swashbuckle 应用程序入口 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.ServiceProcess; using System.Text; using System.Threading.Tasks; namespace WebApiHost { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> static void Main( string [] args) { RunDebug(); StartService(); } private static void

Google Calendar API error - “API key not valid. Please pass a valid API key.”,

℡╲_俬逩灬. 提交于 2020-08-10 05:49:15
问题 I've started getting the error from google rest api since yesterday { "error": { "code": 400, "message": "API key not valid. Please pass a valid API key.", "errors": [ { "message": "API key not valid. Please pass a valid API key.", "domain": "global", "reason": "badRequest" } ], "status": "INVALID_ARGUMENT" } } API endpoint is: https://www.googleapis.com/calendar/v3/calendars/[CALENDAR_ID]/events?timeMax=2020-06-22T23%3A59%3A59.000%2B06%3A00&timeMin=2020-06-22T00%3A00%3A00.000%2B06%3A00&key=