security,Oauth2登录后302重定向Location参数错误,Oauth2授权码模式直接获取access_token

首先我是通过zuul网关(9001)进行访问登录,auth认证服务器(9002)进行原生框架认证

网上给的常规测试都是通过下面的url
http://192.168.2.18:9002/oauth/authorize?client_id=client&response_type=code,
然后会自动跳转到 /login 方法。

在这里插入图片描述
输入用户名和密码然后进行登录,在登录过程中会有一个响应头为:Location。如图:

在这里插入图片描述

但是当我们直接输入***http://192.168.2.18:9002/login***时,就会如下图:

在这里插入图片描述

这也就导致我们不能通过框架进行登录了。我们需要做的是将这个Location直接换成:
http://192.168.2.18:9002/oauth/authorize?client_id=client&response_type=code

实际需求是用户 只期望输入用户名和密码,其他的什么认证需要由后台操作完成,用户对于这些转换是无感的。希望输入下面URL的方式就能登录了:
http://192.168.2.18:9001/login/doLogin?username=admin&password=123456

这时候我们就可以像下面进行改造了。根据上面出现的情况,进行手动重定向,完成他请求的接力棒!

zuul的controller层写登录方法:***LoginController.java***代码如下

package com.br.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @Author huangyongliang
 * @Date 2020/8/5 14:34
 * @Description
 **/
@RestController

@Api(tags = "zuul网关进行登录")
@RequestMapping(value = "login", produces = "application/json;charset=UTF-8")
class LoginController {
   <
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值