一.token的认证自定义异常

1.在资源服务器配置
2.创建CustomOAuthEntryPoint

package com.othp.core.config;import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;@Component
public class CustomOAuthEntryPoint implements AuthenticationEntryPoint {@Overridepublic void commence(HttpServletRequest request, HttpServletResponse response,AuthenticationException authException) throws ServletException {Map map = new HashMap();map.put("code", "40001");map.put("message", "token无效!");
//        map.put("message", authException.getMessage());map.put("data", request.getServletPath());response.setContentType("application/json");//请求正常码 200response.setStatus(HttpServletResponse.SC_OK);
//      response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);try {ObjectMapper mapper = new ObjectMapper();mapper.writeValue(response.getOutputStream(), map);} catch (Exception e) {throw new ServletException();}}}

3.在资源服务器的配置authenticationEntryPoint

package com.othp.mine.config;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;import com.othp.core.config.CustomOAuthEntryPoint;@Configuration
@EnableResourceServer //@这个注解就决定了这是个资源服务器。
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {@Autowiredprivate CustomOAuthEntryPoint customOAuthEntryPoint;@Overridepublic void configure(HttpSecurity http) throws Exception {//post请求默认的都开启了csrf的模式,所有post请求都必须带有token之类的验证信息才可以进入登陆页面,这边是禁用csrf模式http.csrf().disable();http.authorizeRequests()  //方法有多个子节点,每个匹配器按其声明的顺序进行考虑。.antMatchers(//waggerui 忽略"/webjars/**","/resources/**","/swagger-ui.html","/swagger-resources/**","/v2/api-docs",//系统使用"/CK030201/*","/Common/getPhoneCode","/SJ030101/*","/Common/getToken")
//            .antMatchers("**").permitAll(); //不需要认证http.authorizeRequests()  .anyRequest().authenticated(); //用户进行身份验证}@Overridepublic void configure(ResourceServerSecurityConfigurer resources) throws Exception {//bearer token的验证,异常自定义返回resources.authenticationEntryPoint(customOAuthEntryPoint);}}

3.调用相应接口。传错误的bearer

二、token获取时,账号密码错误异常自定义

待更新。。。

Oauth2的异常处理,统一封装相关推荐

  1. feign返回结果统一处理_SpringCloud异常处理统一封装我来做-使用篇

    SpringCloud异常处理统一封装我来做-使用篇 简介 重复功能我来写.在 SpringBoot 项目里都有全局异常处理以及返回包装等,返回前端是带上succ.code.msg.data等字段.单 ...

  2. 在vue项目中:统一封装 Axios 接口与异常处理

    在vue项目中:统一封装 Axios 接口与异常处理 参考文章: (1)在vue项目中:统一封装 Axios 接口与异常处理 (2)https://www.cnblogs.com/itgezhu/p/ ...

  3. .NET Core 返回结果统一封装

    本文使用.NET Core Webapi演示! 一:新建.NetCore webapi项目 为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理. 二:定义返回结果结构 我 ...

  4. 接口响应时组装响应json_企业实战之spring项目《接口响应体格式统一封装》

    前言 在之前的文章中我们有介绍过,如何更好.更简单的写好一个接口(接口返回值篇),今天的这篇文章我们主要介绍,怎么统一处理下接口的返回格式问题. 问题分析 我们先来分析下我们所面临的问题在哪里,然后接 ...

  5. 「springcloud 2021 系列」Spring Cloud Gateway + OAuth2 + JWT 实现统一认证与鉴权

    通过认证服务进行统一认证,然后通过网关来统一校验认证和鉴权. 将采用 Nacos 作为注册中心,Gateway 作为网关,使用 nimbus-jose-jwt JWT 库操作 JWT 令牌 理论介绍 ...

  6. Spring Security+OAuth2自定义异常处理

    前面我们使用 Spring Security+OAuth2做认证授权时,默认返回都是提供好的默认返回格式,返回结果不是很友好,大体如下: {"error": "inval ...

  7. springboot统一封装返回结果

    前言 在项目框架整合阶段,为了更优雅的封装后端返回结果,便于前后端联调,通常需要对后端的返回值进行一定的封装处理,下面介绍2种比较实用的方式 方式1:常规处理 定义一个枚举类,主要包括返回的code和 ...

  8. bcb异常处理显示错误行号_SpringBoot系列(七)- springboot 错误异常处理统一办法

    步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:HelloController步骤4:GlobalExceptionHandler步骤5:errorPage.jsp步骤6:重启测试 步骤 1 ...

  9. 【开源项目】基于FFmpeg的PCM和RGB数据统一封装

    项目采用工程模式进行构造. 技术解决难点: 1.编码后的PTS时间一定要赋值.2.音视频封装同步问题,其中涉及到PTS同步问题,例如视频25PTS/s  音频43PTS/s(44100采样率/1024 ...

  10. 支付宝常用接口统一封装,可直接支付参数使用(适用于H5、PC、APP)

最新文章

  1. 使用CFURLCreateStringByAddingPercentEscapes进行URL编码
  2. Filecoin: 影响力容错(PFT)和预期共识(EC)
  3. 关于Linux的虚拟内存管理
  4. 同步异步单线程多线程初级理解
  5. 封装微信分享到朋友/朋友圈js
  6. 大型网站架构, 缓存的几点
  7. 计算机准考证要打印多大的纸,2020税务师准考证打印要求 应该用多大的纸打印?...
  8. 安卓逆向 | 某新闻类APP urlSign
  9. [下载]Windows 10测试版的新版雅黑字体及切换工具
  10. 光学镜头参数详解(EFL、TTL、BFL、FFL、FBL/FFL、FOV、F/NO、RI、MTF、TV-Line、Flare/Ghost)
  11. 去年我国软件业收入4.3万亿元 同比增长16.6%
  12. 浏览器主页被篡改劫持怎么办
  13. 一些触动人心的动效设计欣赏
  14. 配合理lcd的c语言小游戏,51单片机+LCD12864做的贪食蛇和俄罗斯方块小游戏分享
  15. [附源码]计算机毕业设计JAVA校园征兵及退役复原管理系统
  16. 使用js,对数值保留小数点后两位的处理(两种情况)
  17. 【Linux服务器运行jar包】
  18. irreader RSS 订阅源阅读器工具软件 - 一款强大的网络内容阅读器
  19. 各种本地存储对比 cookie,localStorage,sessionStorage,indexDB以及他们和vuex的区别
  20. 五年高考三年模拟暗部软件库_8款实用的手机学习软件推荐,高中生学习必备!...

热门文章

  1. pythondebug教学_python debug的使用方式
  2. 推荐几个前端模板下载站
  3. 超好用的开源 IP 地址管理系统,告别传统 Excel 统计方式!
  4. Eplan破解文件名称说明:
  5. php增加md5加密的方法_php进行md5加密简单实例方法
  6. 别再苦恼电脑录屏软件哪个免费了,试试这几款吧
  7. 高斯09linux教程,Gaussian 09的安装与使用
  8. 主力吸筹猛攻指标源码_通达信大于9000手大单指标公式,主力吸筹猛攻指标源码...
  9. 会议OA项目之我的审批(查询会议签字)
  10. VC6.0内存泄露检测工具