【接口加密】拦截器验证tocken信息

最近项目中需要做web版视频通话项目,所以组长一直考虑接口安全这方面的问题。因为项目就是一个已经成形的项目,我第一步就是看现有的项目中接口安全方面是如何做的。

我发现,项目中第一步应用的就是拦截器,接着就好好学习了下。

一、拦截器是什么?


二、demo例子

1.ApiConfigurer

package com.rcplatform.livechat.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class ApiConfigurer  extends WebMvcConfigurerAdapter {

	@Bean
	 public  WebApiInterceptor  webApiInterceptor(){
	 	return  new WebApiInterceptor();
	 }

	 @Override
	 public  void addInterceptors(InterceptorRegistry registry){
         //多个拦截器组成一个拦截器链
		 //addPathPattern 用于添加拦截规则 路径,是带api接口的
		 //用于
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用如下代码获取Java中的token: ``` import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.nio.charset.StandardCharsets; import java.util.Base64; public class TokenUtil { public static String getToken(String clientId, String clientSecret) { String plainCreds = clientId + ":" + clientSecret; byte[] plainCredsBytes = plainCreds.getBytes(StandardCharsets.UTF_8); String base64Creds = Base64.getEncoder().encodeToString(plainCredsBytes); String tokenUrl = "http://your.auth.server/oauth/token"; //your auth server url String grantType = "client_credentials"; //the type of grant String scope = "read write"; //the scope of the access token String url = tokenUrl + "?grant_type=" + grantType + "&scope=" + scope; URL obj; InputStream in = null; try { obj = new URL(url); URLConnection conn = obj.openConnection(); HttpURLConnection httpConn = (HttpURLConnection) conn; httpConn.setRequestMethod("POST"); httpConn.setRequestProperty("Authorization", "Basic " + base64Creds); in = new BufferedInputStream(httpConn.getInputStream()); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuffer buffer = new StringBuffer(); String line; while ((line = reader.readLine()) != null) { buffer.append(line); } return buffer.toString(); } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; } } ``` 该方法使用了Basic认证方式,将client id和client secret进行base64编码后传递给token server。同时,也传递了`grant_type`和`scope`参数,用于指定授权方式和访问权限范围。在token server验证完成后,会返回一个JSON格式字符串,里面包括了access_token信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值