SpringBoot使用Resttemplate进行Basic认证登录和Restful接口调用

直接贴代码

(推荐)方式一:使用RestTemplateBuilder自动配置

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.web.client.RestTemplateBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.client.RestTemplate;@Configurationpublic class RestTemplateConfig { @Autowired private RestTemplateBuilder restTemplateBuilder; @Bean public RestTemplate restTemplate(){ return restTemplateBuilder.basicAuthorization("admin","admin").build(); }}
@RestController
public class Test {

@Autowired
private RestTemplate restTemplate;

@RequestMapping(value = "/test")
private String getRestResponse() {
String url ="http://192.168.17.8:6080/service/public/v2/api/service/1";
try {
return restTemplate.getForObject(url, String.class);
} catch(Exception ex) {
return ex.toString();
}
}

方式二:复杂

import org.apache.commons.codec.binary.Base64;import org.springframework.http.HttpEntity;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpMethod;import org.springframework.http.ResponseEntity;import org.springframework.web.client.RestTemplate;public class TestRanger { private static final String EXPECTED_MIME_TYPE = "application/json"; static String rangerBaseUrl = "http://192.168.17.8:6080"; public static void getPolicyByName() { String url = rangerBaseUrl + "/service/public/v2/api/service/1"; String plainCreds = "admin:admin"; byte[] plainCredsBytes = plainCreds.getBytes(); byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes); String base64Creds = new String(base64CredsBytes); RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.add("Authorization", "Basic " + base64Creds); headers.add("Content-Type","application/json"); HttpEntity<String> entity = new HttpEntity<String>(headers); ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class); String str = response.getBody(); System.out.println(str); } public static void main(String[] args) { getPolicyByName(); }}
(0)

相关推荐

  • EnvironmentPostProcessor怎么做单元测试?阿里P7解答

    简介 从Spring Boot 1.3开始,我们可以在应用程序上下文刷新之前使用EnvironmentPostProcessor来自定义应用程序的Environment.Environment表示当前 ...

  • 运用RabbitMQ编写秒杀逻辑

    简介 阅读本篇,需要具备RabbitMQ的知识,以及其在SpringBoot中的应用. 本篇将使用RabbitMQ制作一个秒杀系统的雏形,其主要充当的作用是流量削峰. 系统架构图 秒杀逻辑分为两部分: ...

  • Java第57讲——如何实现上传文件的功能

    Java第57讲--如何实现上传文件的功能 原创编程实践2020-11-24 22:52:45 当我们开发一个Web系统时,常常需要实现上传用户身份证照片或其他图片的功能,上传图片只是上传文件的特殊场 ...

  • MAC微信插件神器,可多开和防撤回,还可以免认证登录

    MAC微信插件神器,可多开和防撤回,还可以免认证登录

  • Shiro实现Basic认证

    前言 场景是这样的,我们平时的工作中可能会对外提供一些接口,如果这些接口不做一些安全认证,什么人都可以访问,安全性就太低了,所以我们的目的就是增加一个接口的认证机制,防止别人通过接口攻击服务器. 至于 ...

  • 获取验证码并通过双重认证登录

    在启用双重认证的情况下,您需要验证码才能在新设备或浏览器上使用 Apple ID 进行登录. 每次在新设备或浏览器上使用 Apple ID 登录时,您都需要使用密码和六位验证码来确认您的身份.您可以通 ...

  • 人脸认证登录系统

    人脸认证登录系统 通过辨识色彩和区域验证是否是人脸,是否是同一人脸,达到防伪效果.是一种新型技术 中文名人脸认证登录系统 外文名Tencent Research Face Authentication ...

  • UC头条:华为新款 Matebook 14s 曝光:通过 EVO 认证,还有雷电 4 接口

    IT之家10月3日消息今年9月13日,华为推出两款笔记本电脑新品--MateBook13s和14s,均采用触控屏,搭载华为移动应用,将PC应用生态和移动应用生态整合到一起,实现在Windows上体验移 ...

  • Java,SpringBoot采用token方式实现登录认证

    IT小奋斗2021-01-13 21:48:33 Token,令牌,访问资源的凭证,每次访问带上这个令牌,就可识别出用户身份. JWT (JsonWebToken),是实现token技术的一种解决方案 ...

  • Java Springboot 如何利用Redis完成Session操作(登录,注销等)

    前沿 在Java Web开发中,如果你要做动态网页或者记录用户的相关信息等等,必然会或多或少涉及到Session的操作. Session session是什么呢?简单地来说,相当于一个有时间限制的会话 ...

  • 【项目实践】一文带你搞定Session和JWT的登录认证方式

    以项目驱动学习,以实践检验真知 前言 登录认证,估计是所有系统中最常见的功能了,并且也是最基础.最重要的功能.为了做好这一块而诞生了许多安全框架,比如最常见的Shiro.Spring Security ...

  • SpringBoot实现登录拦截器(实战版)

    重磅干货,第一时间送达 对于管理系统或其他需要用户登录的系统,登录验证都是必不可少的环节,在SpringBoot开发的项目中,通过实现拦截器来实现用户登录拦截并验证. 1.SpringBoot实现登录 ...