Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zlb-app
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhoushaopan
zlb-app
Commits
feb6da22
提交
feb6da22
authored
9月 01, 2022
作者:
zhoushaopan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(根据ticket获取token的接口): 新增接口
新增提供根据token获取当前人员信息
上级
bfc58a1c
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
95 行增加
和
12 行删除
+95
-12
ZlbAppController.java
.../com/tykj/zlbapp/subject/controller/ZlbAppController.java
+11
-8
ZlbAppAuthService.java
...va/com/tykj/zlbapp/subject/service/ZlbAppAuthService.java
+11
-1
ZlbAppAuthServiceImpl.java
...kj/zlbapp/subject/service/impl/ZlbAppAuthServiceImpl.java
+23
-3
UnifiedReturnConfig.java
src/main/java/com/tykj/zlbapp/util/UnifiedReturnConfig.java
+50
-0
没有找到文件。
src/main/java/com/tykj/zlbapp/subject/controller/ZlbAppController.java
浏览文件 @
feb6da22
package
com
.
tykj
.
zlbapp
.
subject
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.tykj.zlbapp.subject.service.ZlbAppAuthService
;
import
com.tykj.zlbapp.subject.vo.TokenVO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
static
com
.
tykj
.
zlbapp
.
contants
.
AppConstants
.
TOKEN_SESSION_KEY
;
/**
* @author zsp
...
...
@@ -32,10 +28,10 @@ public class ZlbAppController {
@GetMapping
(
"/getAppTokenByTicketId"
)
@ApiOperation
(
value
=
"根据票据换取token"
,
notes
=
"根据票据换取token"
)
public
TokenVO
get
TokenByTicketId
(
String
ticketId
,
HttpServletRequest
request
)
{
public
ResponseEntity
getApp
TokenByTicketId
(
String
ticketId
,
HttpServletRequest
request
)
{
// HttpSession session = request.getSession();
//1. 通过ticketId 换取 accessToken
TokenVO
tokenByTicket
=
zlbAppAuthService
.
getTokenByTicket
(
ticketId
);
// //2. 保存accessToken
// session.setAttribute(TOKEN_SESSION_KEY, tokenByTicket.g);
//// //3. 通过accessToken 获取用户信息
...
...
@@ -43,7 +39,14 @@ public class ZlbAppController {
//// //4. 缓存用户信息
//// session.setAttribute(USER_INFO_KEY, userInfo);
// log.info("session:{}",session);
return
tokenByTicket
;
return
ResponseEntity
.
ok
(
zlbAppAuthService
.
getTokenByTicket
(
ticketId
));
}
@GetMapping
(
"/getAppUserInfoByToken"
)
@ApiOperation
(
value
=
"根据token获取当前登录的用户信息"
,
notes
=
"根据token获取当前登录的用户信息"
)
public
ResponseEntity
getAppUserInfoByToken
(
String
token
)
{
return
ResponseEntity
.
ok
(
zlbAppAuthService
.
getUserInfoByToken
(
token
));
}
}
src/main/java/com/tykj/zlbapp/subject/service/ZlbAppAuthService.java
浏览文件 @
feb6da22
...
...
@@ -2,6 +2,8 @@ package com.tykj.zlbapp.subject.service;
import
com.tykj.zlbapp.subject.vo.TokenVO
;
import
java.util.Map
;
/**
* @author zsp
* @version 1.0
...
...
@@ -9,5 +11,13 @@ import com.tykj.zlbapp.subject.vo.TokenVO;
*/
public
interface
ZlbAppAuthService
{
TokenVO
getTokenByTicket
(
String
ticketId
);
/**
* 根据ticketId获取token
* @param ticketId ticketId
* @return 对象
*/
Map
<
String
,
Object
>
getTokenByTicket
(
String
ticketId
);
Map
<
String
,
Object
>
getUserInfoByToken
(
String
token
);
}
src/main/java/com/tykj/zlbapp/subject/service/impl/ZlbAppAuthServiceImpl.java
浏览文件 @
feb6da22
...
...
@@ -31,7 +31,7 @@ public class ZlbAppAuthServiceImpl implements ZlbAppAuthService {
private
RestTemplate
restTemplate
;
@Override
public
TokenVO
getTokenByTicket
(
String
ticket
)
{
public
Map
<
String
,
Object
>
getTokenByTicket
(
String
ticket
)
{
//请求zlbApp的接口
//进行接口请求的构造
//1 构造header
...
...
@@ -49,7 +49,27 @@ public class ZlbAppAuthServiceImpl implements ZlbAppAuthService {
HttpEntity
<
MultiValueMap
<
String
,
Object
>>
httpEntity
=
new
HttpEntity
<>(
params
,
headers
);
String
body
=
restTemplate
.
postForEntity
(
AppConstants
.
ACCESS_TOKEN_URL
,
httpEntity
,
String
.
class
).
getBody
();
//解析xml
Map
<
String
,
Object
>
valueByNode
=
XMLParse
.
getValueByNode
(
body
);
return
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
valueByNode
),
TokenVO
.
class
);
// Map<String, Object> valueByNode =
// JSONObject.parseObject(JSONObject.toJSONString(valueByNode), TokenVO.class)
return
XMLParse
.
getValueByNode
(
body
);
}
@Override
public
Map
<
String
,
Object
>
getUserInfoByToken
(
String
token
)
{
HttpHeaders
headers
=
HeadUtil
.
getHeader
();
//请求body为x-www-form-urlencoded方式
MultiValueMap
<
String
,
Object
>
params
=
new
LinkedMultiValueMap
<>();
//servicecode 就是ak
params
.
add
(
"servicecode"
,
AppConstants
.
IRS_AK
);
params
.
add
(
"method"
,
"getUserInfo"
);
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyyMMddhhmmss"
);
String
format
=
simpleDateFormat
.
format
(
new
Date
());
params
.
add
(
"time"
,
format
);
params
.
add
(
"sign"
,
MD5Util
.
getInstance
().
getMD5
(
AppConstants
.
IRS_AK
+
AppConstants
.
IRS_SK
+
format
));
params
.
add
(
"token"
,
token
);
HttpEntity
<
MultiValueMap
<
String
,
Object
>>
httpEntity
=
new
HttpEntity
<>(
params
,
headers
);
String
body
=
restTemplate
.
postForEntity
(
AppConstants
.
ACCESS_TOKEN_URL
,
httpEntity
,
String
.
class
).
getBody
();
//解析xml
return
XMLParse
.
getValueByNode
(
body
);
}
}
src/main/java/com/tykj/zlbapp/util/UnifiedReturnConfig.java
0 → 100644
浏览文件 @
feb6da22
package
com
.
tykj
.
zlbapp
.
util
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.tykj.zlbapp.base.ResultObj
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.MethodParameter
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.converter.HttpMessageConverter
;
import
org.springframework.http.server.ServerHttpRequest
;
import
org.springframework.http.server.ServerHttpResponse
;
import
org.springframework.web.bind.annotation.RestControllerAdvice
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
;
/**
* UnifiedReturnConfig.
*
* @author zsp <xhyrzldf@gmail.com>
* @since 2020/10/9 at 3:17 下午
*/
@Configuration
@RestControllerAdvice
(
"com.tykj.zlbapp"
)
public
class
UnifiedReturnConfig
implements
ResponseBodyAdvice
<
Object
>
{
private
ObjectMapper
objectMapper
=
new
ObjectMapper
();
@Override
public
boolean
supports
(
MethodParameter
returnType
,
Class
<?
extends
HttpMessageConverter
<?>>
converterType
)
{
return
true
;
}
@Override
public
Object
beforeBodyWrite
(
Object
body
,
MethodParameter
returnType
,
MediaType
selectedContentType
,
Class
<?
extends
HttpMessageConverter
<?>>
selectedConverterType
,
ServerHttpRequest
request
,
ServerHttpResponse
response
)
{
// String类型不能直接包装
if
(
returnType
.
getGenericParameterType
().
equals
(
String
.
class
))
{
try
{
// 将数据包装在ResultObj里后转换为json串进行返回
return
objectMapper
.
writeValueAsString
(
new
ResultObj
<>(
body
));
}
catch
(
JsonProcessingException
e
)
{
e
.
getMessage
();
}
}
// 否则直接包装成ResultVo返回
return
new
ResultObj
<>(
body
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论