SpringSecurityOAuth2如何自定义登录登出
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关SpringSecurityOAuth2如何自定义登录登出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。登出自
千家信息网最后更新 2026年10月31日SpringSecurityOAuth2如何自定义登录登出
本篇文章给大家分享的是有关SpringSecurityOAuth2如何自定义登录登出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
登出自定义:登出相当于使token失效,我们只需要携带access_token 请求 ConsumerTokenServices(默认自带的注销接口)即可,请求后旧的token即不可用。
@DeleteMapping("/logout") public ResponseVo logout(String accessToken) { if (consumerTokenServices.revokeToken(accessToken)) { return new ResponseVo(200, "登出成功"); } else { return new ResponseVo(500, "登出失败"); } }登录自定义:默认的token请求地址是"oauth/token",我们可以在认证服务配置的 AuthorizationServerEndpointsConfigurer配置中自定义的请求地址。
/** * 配置授权(authorization)以及令牌(token)的访问端点和令牌服务(token services) */ @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {// endpoints.pathMapping("/oauth/token","/token/login"); 设置token生成请求地址 endpoints .tokenStore(tokenStore()) // 配置token存储 .userDetailsService(userDetailsService) // 配置自定义的用户权限数据,不配置会导致token无法刷新 .authenticationManager(authenticationManager) .tokenServices(defaultTokenServices())// 加载token配置 .exceptionTranslator(webResponseExceptionTranslator); // 自定义异常返回 }我们还可以封装一层自己的请求,然后在请求token之前做一些自己的处理。我这里使用了获取需要请求token的信息,然后在java端使用RestTemplate来调用生成token地址 的方式来获取token,我可以在调用之前做一些其他处理,如验证码校验等等。
@PostMapping("/login") public ResponseVo login(HttpServletRequest request) throws UnsupportedEncodingException { String header = request.getHeader("Authorization"); if (header == null && !header.startsWith("Basic")) { return new ResponseVo(400, "请求头中缺少参数"); } String url = "http://" + request.getRemoteAddr() + ":" + request.getServerPort() + "/oauth/token"; Map map = new HashMap<>(); map.put("grant_type", "password"); map.put("username", request.getParameter("username")); map.put("password", request.getParameter("password")); HttpHeaders headers = new HttpHeaders(); headers.set("Authorization", header); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); // 必须该模式,不然请求端无法取到 grant_type HttpEntity httpEntity = new HttpEntity<>(headers); ResponseEntity response = restTemplate.postForEntity(url + "?" + LinkStringUtil.createLinkStringByGet(map), httpEntity, String.class); if(response.getStatusCodeValue()==200){ return new ResponseVo(200, "登录成功", JSONObject.parseObject(response.getBody())); }else{ return new ResponseVo(500,"登录失败"); } } 以上就是SpringSecurityOAuth2如何自定义登录登出,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
配置
登录
地址
成功
令牌
更多
知识
篇文章
处理
服务
生成
实用
信息
参数
就是
工作会
接口
数据
文章
方式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海挚品互联网科技有限公司
华服互联网科技靠谱吗
天津市摩尔互联网科技
广州为想互联网科技有限公司
广州紫鲸互联网科技有限公司
互联网和科技创新
广州宏创互联网科技
奇士达互联网科技
四川狮子座互联网科技
居家互联网科技有限公司
广州慧亚互联网科技怎么样
上海宁丞科技互联网
中国科技创新与世界互联网大会
世界互联网领先科技成果获奖
卓翼科技产业互联网合作
互联网方面的科技前沿
互联网金融运营模式中的金融科技
同城互联网络科技
福仕德教育科技互联网
黑龙江互联网科技公司
瑰夏咖啡
互联网科技网
互联网科技公司税收优惠
上海万想互联网科技
济南和联互联网科技有限公司
科技互联网大厂
互联网科技圈年度人物
城市宝互联网科技有限公司
普陀区互联网教育科技管理办法
上海万顺科技互联网有限公司招聘