配置 基础包依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ================================== 在spring-boot中 ================================== &…
系列目录: DotNetOpenAuth实践系列(源码在这里) 上篇我们讲到WebApi资源服务器配置,这篇我们说一下Webform下的ashx,aspx做的接口如何使用OAuth2认证 一.环境搭建 1.新建Webform项目 2.使用Nuget添加DotNetOpenAuth 5.0.0 alpha3 3.把上次制作的证书文件拷贝的项目中 二.编写关键代码 1.公共代码 ResourceServerConfiguration using System.Security.Cryptograph…
系列目录: DotNetOpenAuth实践系列(源码在这里) 上一篇我们写了一个OAuth2的认证服务器,我们也获取到access_token,那么这个token怎么使用呢,我们现在就来揭开 一般获取access_token用处就是访问接口资源,不然也用不到怎么大费周章的还要获取个token再去访问资源 而接口有几类: WCF服务接口,WebApi,还有自己用如ashx,aspx写的接口提供给前端调用的接口 其中WCF接口DotNetOpenAuth.Sample例子中已经做了 这些接口公开对…
为什么使用JWT令牌 在上面的资源服务器中,通过配置,我们了解到,当我们拿着token去获取资源时,程序会先去调用远程认证服务器的端点去验证解析token,或者在本地解析校验token,这样毫无疑问,当访问量过大的时候,对认证服务器的压力可想而知,所以为了解决上面的问题,我们采用JWT令牌格式,可以优化上面的问题. 令牌采用JWT格式即可解决上边的问题,用户认证通过会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带JWT访问资源服务,资源服务根据事先约定的算法自行完成令…
PS:此文章为系列文章,建议从第一篇开始阅读. 在我们之前的文章中,我们当时获取到Token令牌时,此时的令牌时存储在内存中的,这样显然不利于我们程序的扩展,所以为了解决这个问题,官方给我们还提供了其它的方式来存储令牌,存储到数据库或者Redis中,下面我们就来看一看怎么实现. 不使用Jwt令牌的实现 存储到数据库中(JdbcTokenStore) 使用数据库存储方式之前,我们需要先准备好对应的表.Spring Security OAuth仓库可以找到相应的脚本:https://github.c…
在搞 Spring Security 的时候遇到了一个小坑,就是静态资源加载的问题. 当我们继承了 WebSecurityConfigurerAdapter的时候,会去重写几个方法.去设定我们自己要过滤的路径或者是权限的一些规则. @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired CustomUserService c…
在使用Spring Security时要求所有请求都需要授权访问,此时会定义过滤规则如下 protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .formLogin() // 指定登录页面 .loginPage("/login") // 允许所有用户可以访问指定的登录页面 .permitAl…
在springboot整合spring security 过程中曾遇到下面问题:(spring boot 2.0以上版本   spring security 5.x    (spring  security 4.x不知道是否会存在以下问题) ) springsecurity会自动屏蔽我们引用的css,js等静态资源,导致页面不能加载出该有的样式.应在继承了WebSecurityConfigurerAdapter类中的configure方法中添加允许加载的配置 或…
我们知道OAuth2的官方提供了四种令牌的获取,简化模式,授权码模式,密码模式,客户端模式.其中密码模式中仅仅支持我们通过用户名和密码的方式获取令牌,那么我们如何去实现一个我们自己的令牌获取的模式呢?下面我们将以用户名,密码,角色三个信息的方式来获取令牌. 在授权模式中,授权模式的核心接口是 TokenGranter ,他拥有一个抽象实现类 AbstractTokenGranter ,我们需要自定义新的 grant type ,就再写一个他的子类即可,如下: public class Accou…
编辑 nginx.conf server { listen 80; server_name file.youxiu326.xin; location /image/ { #访问 file.youxiu326.xin/image/* 则访问到 /java/static/image/* root /java/static/; autoindex on; } location /file/ { #访问 file.youxiu326.xin/file/* 则访问到 /java/static/file/*…