mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 17:38:32 +08:00
v 3.2.0
This commit is contained in:
parent
c490551aef
commit
de702ada8e
@ -1,4 +1,30 @@
|
|||||||
MaxKey v 3.1.1 GA 2021/11/30
|
MaxKey v 3.2.0 GA 202*/**/**
|
||||||
|
*(MAXKEY-211001) 实现多租户基本功能
|
||||||
|
*(MAXKEY-211002) Apache log4j漏洞升级到2.15.0
|
||||||
|
*(MAXKEY-211004) 修改对称加密算法,
|
||||||
|
*(MAXKEY-211005) OAuth 2.*增加departmentId用户返回属性
|
||||||
|
*(MAXKEY-211006) 删除springfox,swagger依赖,增加springdoc依赖
|
||||||
|
*(MAXKEY-211007) 删除eclipsePluginApply.bat脚本
|
||||||
|
*(MAXKEY-211008) 同步器凭证加密
|
||||||
|
*(MAXKEY-211009) 社交账号提供商client_secret加密
|
||||||
|
*(MAXKEY-211010) 依赖jar引用、更新和升级
|
||||||
|
log4j 2.15.0
|
||||||
|
tomcat 9.0.56
|
||||||
|
springBoot 2.6.1
|
||||||
|
springSecurity 5.6.0
|
||||||
|
springData 2.6.0
|
||||||
|
springSession 2.6.0
|
||||||
|
springkafka 2.8.0
|
||||||
|
springdoc 1.5.13
|
||||||
|
springcloud 3.1.0
|
||||||
|
guava 31.0.1-jre
|
||||||
|
micrometercore 1.8.1
|
||||||
|
commonspool2 2.11.1
|
||||||
|
swaggerV3 2.1.11
|
||||||
|
jedis 3.7.1
|
||||||
|
mybatis 3.5.8
|
||||||
|
|
||||||
|
MaxKey v 3.1.1 GA 2021/11/30
|
||||||
*(MAXKEY-210901) 腾讯iOA零信任产品适配
|
*(MAXKEY-210901) 腾讯iOA零信任产品适配
|
||||||
*(MAXKEY-210902) docker部署完善和文档优化
|
*(MAXKEY-210902) docker部署完善和文档优化
|
||||||
*(MAXKEY-210903) docker-compose支持和文档
|
*(MAXKEY-210903) docker-compose支持和文档
|
||||||
|
|||||||
39
build.gradle
39
build.gradle
@ -283,8 +283,8 @@ subprojects {
|
|||||||
implementation group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}"
|
implementation group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}"
|
||||||
implementation group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}"
|
implementation group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}"
|
||||||
|
|
||||||
implementation group: 'org.springframework.plugin', name: 'spring-plugin-core', version: "${springplugincoreVersion}"
|
//implementation group: 'org.springframework.plugin', name: 'spring-plugin-core', version: "${springplugincoreVersion}"
|
||||||
implementation group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: "${springpluginmetadataVersion}"
|
//implementation group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: "${springpluginmetadataVersion}"
|
||||||
//spring cloud
|
//spring cloud
|
||||||
implementation group: 'org.springframework.cloud', name: 'spring-cloud-commons', version: "${springcloudVersion}"
|
implementation group: 'org.springframework.cloud', name: 'spring-cloud-commons', version: "${springcloudVersion}"
|
||||||
implementation group: 'org.springframework.cloud', name: 'spring-cloud-context', version: "${springcloudVersion}"
|
implementation group: 'org.springframework.cloud', name: 'spring-cloud-context', version: "${springcloudVersion}"
|
||||||
@ -354,7 +354,6 @@ subprojects {
|
|||||||
implementation group: 'com.alibaba', name: 'druid', version: "${druidVersion}"
|
implementation group: 'com.alibaba', name: 'druid', version: "${druidVersion}"
|
||||||
implementation group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}"
|
implementation group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}"
|
||||||
implementation group: 'redis.clients', name: 'jedis', version: "${jedisVersion}"
|
implementation group: 'redis.clients', name: 'jedis', version: "${jedisVersion}"
|
||||||
//implementation group: 'org.ehcache', name: 'ehcache', version: "${ehcacheVersion}"
|
|
||||||
//implementation group: 'org.liquibase', name: 'liquibase-core', version: '4.3.5'
|
//implementation group: 'org.liquibase', name: 'liquibase-core', version: '4.3.5'
|
||||||
implementation group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: "${caffeineVersion}"
|
implementation group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: "${caffeineVersion}"
|
||||||
//mybatis
|
//mybatis
|
||||||
@ -408,34 +407,22 @@ subprojects {
|
|||||||
implementation group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
|
implementation group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}"
|
||||||
//docs
|
//docs
|
||||||
implementation group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
|
implementation group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}"
|
||||||
implementation group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
|
//implementation group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}"
|
||||||
implementation group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
|
//implementation group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}"
|
||||||
implementation group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
|
implementation group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}"
|
||||||
implementation group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
|
implementation group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}"
|
||||||
implementation group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
|
implementation group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}"
|
||||||
implementation group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
|
implementation group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}"
|
||||||
//springfox
|
//springdoc
|
||||||
implementation group: 'io.springfox', name: 'springfox-bean-validators', version: "${springfoxVersion}"
|
implementation group: 'io.github.classgraph', name: 'classgraph', version: '4.8.137'
|
||||||
implementation group: 'io.springfox', name: 'springfox-core', version: "${springfoxVersion}"
|
implementation group: 'org.springdoc', name: 'springdoc-openapi-common', version: "${springdocVersion}"
|
||||||
implementation group: 'io.springfox', name: 'springfox-data-rest', version: "${springfoxVersion}"
|
implementation group: 'org.springdoc', name: 'springdoc-openapi-webmvc-core', version: "${springdocVersion}"
|
||||||
implementation group: 'io.springfox', name: 'springfox-spi', version: "${springfoxVersion}"
|
implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: "${springdocVersion}"
|
||||||
implementation group: 'io.springfox', name: 'springfox-oas', version: "${springfoxVersion}"
|
implementation group: 'org.webjars', name: 'webjars-locator-core', version: '0.48'
|
||||||
implementation group: 'io.springfox', name: 'springfox-schema', version: "${springfoxVersion}"
|
implementation group: 'org.webjars', name: 'webjars-locator', version: '0.42'
|
||||||
implementation group: 'io.springfox', name: 'springfox-swagger2', version: "${springfoxVersion}"
|
implementation group: 'org.webjars', name: 'swagger-ui', version: '4.1.3'
|
||||||
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: "${springfoxVersion}"
|
|
||||||
implementation group: 'io.springfox', name: 'springfox-swagger-common', version: "${springfoxVersion}"
|
|
||||||
implementation group: 'io.springfox', name: 'springfox-spring-webmvc', version: "${springfoxVersion}"
|
|
||||||
implementation group: 'io.springfox', name: 'springfox-spring-web', version: "${springfoxVersion}"
|
|
||||||
implementation group: 'io.springfox', name: 'springfox-spring-webflux', version: "${springfoxVersion}"
|
|
||||||
implementation group: 'io.springfox', name: 'springfox-boot-starter', version: "${springfoxVersion}"
|
|
||||||
//knife4j
|
//knife4j
|
||||||
implementation group: 'com.github.xiaoymin', name: 'knife4j-annotations', version: "${knife4jVersion}"
|
implementation group: 'com.github.xiaoymin', name: 'knife4j-springdoc-ui', version: "${knife4jVersion}"
|
||||||
implementation group: 'com.github.xiaoymin', name: 'knife4j-core', version: "${knife4jVersion}"
|
|
||||||
implementation group: 'com.github.xiaoymin', name: 'knife4j-spring-mvc', version: "${knife4jVersion}"
|
|
||||||
implementation group: 'com.github.xiaoymin', name: 'knife4j-spring', version: "${knife4jVersion}"
|
|
||||||
implementation group: 'com.github.xiaoymin', name: 'knife4j-spring-ui', version: "${knife4jVersion}"
|
|
||||||
implementation group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-starter', version: "${knife4jVersion}"
|
|
||||||
implementation group: 'com.github.xiaoymin', name: 'knife4j-spring-boot-autoconfigure', version: "${knife4jVersion}"
|
|
||||||
|
|
||||||
//local jars
|
//local jars
|
||||||
implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
|
implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar')
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#maxkey properties
|
#maxkey properties
|
||||||
group =maxkey.top
|
group =maxkey.top
|
||||||
version =3.1.1
|
version =3.2.0
|
||||||
vendor =https://www.maxkey.top
|
vendor =https://www.maxkey.top
|
||||||
author =MaxKeyTop
|
author =MaxKeyTop
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ commonsioVersion =2.8.0
|
|||||||
commonslangVersion =2.6
|
commonslangVersion =2.6
|
||||||
commonslang3Version =3.11
|
commonslang3Version =3.11
|
||||||
commonsloggingVersion =1.2
|
commonsloggingVersion =1.2
|
||||||
commonspool2Version =2.6.2
|
commonspool2Version =2.11.1
|
||||||
commonshttpclientVersion =3.1
|
commonshttpclientVersion =3.1
|
||||||
commonsfileuploadVersion =1.4
|
commonsfileuploadVersion =1.4
|
||||||
commonsemailVersion =1.5
|
commonsemailVersion =1.5
|
||||||
@ -41,20 +41,19 @@ commonscompressVersion =1.20
|
|||||||
log4jVersion =2.15.0
|
log4jVersion =2.15.0
|
||||||
kafkaclientsVersion =2.8.1
|
kafkaclientsVersion =2.8.1
|
||||||
poiVersion =4.1.2
|
poiVersion =4.1.2
|
||||||
tomcatVersion =9.0.54
|
tomcatVersion =9.0.56
|
||||||
tomcatembedloggingjuliVersion =8.5.2
|
tomcatembedloggingjuliVersion =8.5.2
|
||||||
#spring
|
#spring
|
||||||
springVersion =5.3.13
|
springVersion =5.3.13
|
||||||
springBootVersion =2.5.6
|
springBootVersion =2.6.1
|
||||||
springSecurityVersion =5.5.3
|
springSecurityVersion =5.6.0
|
||||||
springDataVersion =2.5.7
|
springDataVersion =2.6.0
|
||||||
springSessionVersion =2.5.3
|
springSessionVersion =2.6.0
|
||||||
springkafkaVersion =2.7.8
|
springkafkaVersion =2.8.0
|
||||||
springretryVersion =1.3.0
|
springretryVersion =1.3.0
|
||||||
springplugincoreVersion =2.0.0.RELEASE
|
springplugincoreVersion =2.0.0.RELEASE
|
||||||
springpluginmetadataVersion =2.0.0.RELEASE
|
springpluginmetadataVersion =2.0.0.RELEASE
|
||||||
springfoxVersion =3.0.0
|
springcloudVersion =3.1.0
|
||||||
springcloudVersion =3.0.4
|
|
||||||
springcloudalibabaVersion =2021.1
|
springcloudalibabaVersion =2021.1
|
||||||
springcloudalibabaspringVersion =1.0.11
|
springcloudalibabaspringVersion =1.0.11
|
||||||
springcloudalibabacsplVersion =1.8.2
|
springcloudalibabacsplVersion =1.8.2
|
||||||
@ -64,7 +63,7 @@ jibGradlePluginVersion =3.1.4
|
|||||||
jhlabsfiltersVersion =2.0.235-1
|
jhlabsfiltersVersion =2.0.235-1
|
||||||
kaptchaVersion =2.3.2
|
kaptchaVersion =2.3.2
|
||||||
gsonVersion =2.8.8
|
gsonVersion =2.8.8
|
||||||
guavaVersion =30.1.1-jre
|
guavaVersion =31.0.1-jre
|
||||||
tinkVersion =1.4.0
|
tinkVersion =1.4.0
|
||||||
zxingcoreVersion =3.4.1
|
zxingcoreVersion =3.4.1
|
||||||
concurrentlinkedhashmaplruVersion =1.4.2
|
concurrentlinkedhashmaplruVersion =1.4.2
|
||||||
@ -72,18 +71,18 @@ concurrentlinkedhashmaplruVersion =1.4.2
|
|||||||
jbossloggingVersion =3.4.2.Final
|
jbossloggingVersion =3.4.2.Final
|
||||||
hibernateVersion =6.2.0.Final
|
hibernateVersion =6.2.0.Final
|
||||||
#doc
|
#doc
|
||||||
swaggerVersion =1.6.2
|
swaggerV3Version =2.1.11
|
||||||
swaggerV3Version =2.1.10
|
springdocVersion =1.5.13
|
||||||
knife4jVersion =3.0.3
|
knife4jVersion =3.0.3
|
||||||
#database
|
#database
|
||||||
postgresqlVersion =42.2.20
|
postgresqlVersion =42.2.20
|
||||||
mysqlconnectorjavaVersion =8.0.26
|
mysqlconnectorjavaVersion =8.0.26
|
||||||
druidVersion =1.2.8
|
druidVersion =1.2.8
|
||||||
druidspringbootstarterVersion =1.2.8
|
druidspringbootstarterVersion =1.2.8
|
||||||
jedisVersion =3.7.0
|
jedisVersion =3.7.1
|
||||||
ehcacheVersion =3.9.6
|
ehcacheVersion =3.9.6
|
||||||
caffeineVersion =2.9.2
|
caffeineVersion =2.9.2
|
||||||
mybatisVersion =3.5.7
|
mybatisVersion =3.5.8
|
||||||
mybatisspringVersion =2.0.6
|
mybatisspringVersion =2.0.6
|
||||||
#saml
|
#saml
|
||||||
opensamlVersion =2.6.6
|
opensamlVersion =2.6.6
|
||||||
@ -153,7 +152,7 @@ xmlsecVersion =1.5.8
|
|||||||
xpp3Version =1.1.6
|
xpp3Version =1.1.6
|
||||||
xstreamVersion =1.4.10
|
xstreamVersion =1.4.10
|
||||||
passayVersion =1.6.0
|
passayVersion =1.6.0
|
||||||
micrometercoreVersion =1.6.4
|
micrometercoreVersion =1.8.1
|
||||||
LatencyUtilsVersion =2.0.3
|
LatencyUtilsVersion =2.0.3
|
||||||
stax2apiVersion =4.2.1
|
stax2apiVersion =4.2.1
|
||||||
mapstructVersion =1.4.1.Final
|
mapstructVersion =1.4.1.Final
|
||||||
|
|||||||
@ -1,27 +1,21 @@
|
|||||||
package org.maxkey.autoconfigure;
|
package org.maxkey.autoconfigure;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springdoc.core.GroupedOpenApi;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.models.ExternalDocumentation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.models.OpenAPI;
|
||||||
import springfox.documentation.builders.PathSelectors;
|
import io.swagger.v3.oas.models.info.Info;
|
||||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
import io.swagger.v3.oas.models.info.License;
|
||||||
import springfox.documentation.oas.annotations.EnableOpenApi;
|
|
||||||
import springfox.documentation.service.ApiInfo;
|
|
||||||
import springfox.documentation.service.Contact;
|
|
||||||
import springfox.documentation.spi.DocumentationType;
|
|
||||||
import springfox.documentation.spring.web.plugins.Docket;
|
|
||||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableSwagger2
|
|
||||||
@EnableOpenApi
|
|
||||||
@EnableKnife4j
|
|
||||||
public class SwaggerConfig {
|
public class SwaggerConfig {
|
||||||
|
final static Logger _logger = LoggerFactory.getLogger(SwaggerConfig.class);
|
||||||
|
|
||||||
@Value("${maxkey.swagger.title}")
|
@Value("${maxkey.swagger.title}")
|
||||||
String title;
|
String title;
|
||||||
|
|
||||||
@ -35,38 +29,45 @@ public class SwaggerConfig {
|
|||||||
boolean enable;
|
boolean enable;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Docket docket(){
|
public GroupedOpenApi userApi(){
|
||||||
if(enable) {
|
String[] paths = {
|
||||||
return new Docket(DocumentationType.SWAGGER_2)
|
"/login",
|
||||||
.apiInfo(apiInfo())
|
"/logout",
|
||||||
.select()
|
"/login/**",
|
||||||
.apis(RequestHandlerSelectors.basePackage("org.maxkey")
|
"/logout/**",
|
||||||
.and(RequestHandlerSelectors.withClassAnnotation(Api.class))
|
"/authz/**",
|
||||||
.and(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)))
|
"/authz/**/**",
|
||||||
.paths(PathSelectors.any())
|
"/metadata/saml20/**" ,
|
||||||
.build();
|
"/onlineticket/validate/**",
|
||||||
}else {
|
"/api/connect/v10/userinfo",
|
||||||
return null;
|
"/api/oauth/v20/me"
|
||||||
}
|
|
||||||
|
};
|
||||||
|
String[] packagedToMatch = { "org.maxkey.authz" };
|
||||||
|
return GroupedOpenApi.builder().group(title)
|
||||||
|
.pathsToMatch(paths)
|
||||||
|
.packagesToScan(packagedToMatch).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 配置swagger信息
|
@Bean
|
||||||
@SuppressWarnings(value = { })
|
public OpenAPI docOpenAPI() {
|
||||||
private ApiInfo apiInfo() {
|
return new OpenAPI()
|
||||||
Contact contact = new Contact(
|
.info(
|
||||||
"MaxKey.top",
|
new Info()
|
||||||
"https://www.maxkey.top/",
|
.title(title)
|
||||||
"maxkeysupport@163.com");
|
.description(description)
|
||||||
|
.version(version)
|
||||||
return new ApiInfo(
|
.termsOfService("https://www.maxkey.top/")
|
||||||
title,
|
.license(
|
||||||
description,
|
new License()
|
||||||
version,
|
.name("Apache License, Version 2.0")
|
||||||
"https://www.maxkey.top/",
|
.url("http://www.apache.org/licenses/LICENSE-2.0")
|
||||||
contact,
|
)
|
||||||
"Apache License, Version 2.0",
|
).
|
||||||
"http://www.apache.org/licenses/LICENSE-2.0",
|
externalDocs(
|
||||||
new ArrayList<>());
|
new ExternalDocumentation()
|
||||||
}
|
.description("MaxKey.top contact maxkeysupport@163.com")
|
||||||
|
.url("https://www.maxkey.top/")
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,22 +69,24 @@ public class GroupMember extends UserInfo implements Serializable{
|
|||||||
* @param memberId
|
* @param memberId
|
||||||
* @param type
|
* @param type
|
||||||
*/
|
*/
|
||||||
public GroupMember(String groupId, String memberId, String type) {
|
public GroupMember(String groupId, String memberId, String type , String instId) {
|
||||||
super();
|
super();
|
||||||
this.groupId = groupId;
|
this.groupId = groupId;
|
||||||
this.memberId = memberId;
|
this.memberId = memberId;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
this.instId = instId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public GroupMember(String groupId, String groupName, String memberId,
|
public GroupMember(String groupId, String groupName, String memberId,
|
||||||
String memberName, String type) {
|
String memberName, String type , String instId) {
|
||||||
super();
|
super();
|
||||||
this.groupId = groupId;
|
this.groupId = groupId;
|
||||||
this.groupName = groupName;
|
this.groupName = groupName;
|
||||||
this.memberId = memberId;
|
this.memberId = memberId;
|
||||||
this.memberName = memberName;
|
this.memberName = memberName;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
this.instId = instId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -66,10 +66,11 @@ public class GroupPrivileges extends Apps implements Serializable{
|
|||||||
* @param groupId
|
* @param groupId
|
||||||
* @param appId
|
* @param appId
|
||||||
*/
|
*/
|
||||||
public GroupPrivileges(String groupId, String appId) {
|
public GroupPrivileges(String groupId, String appId, String instId) {
|
||||||
super();
|
super();
|
||||||
this.groupId = groupId;
|
this.groupId = groupId;
|
||||||
this.appId = appId;
|
this.appId = appId;
|
||||||
|
this.instId = instId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -120,21 +120,23 @@ public class RoleMember extends UserInfo implements Serializable {
|
|||||||
this.instName = instName;
|
this.instName = instName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RoleMember(String roleId, String memberId, String type) {
|
public RoleMember(String roleId, String memberId, String type , String instId) {
|
||||||
super();
|
super();
|
||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
this.memberId = memberId;
|
this.memberId = memberId;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
this.instId = instId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public RoleMember(String roleId, String roleName, String memberId, String memberName, String type) {
|
public RoleMember(String roleId, String roleName, String memberId, String memberName, String type ,String instId) {
|
||||||
super();
|
super();
|
||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
this.roleName = roleName;
|
this.roleName = roleName;
|
||||||
this.memberId = memberId;
|
this.memberId = memberId;
|
||||||
this.memberName = memberName;
|
this.memberName = memberName;
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
this.instId = instId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -53,9 +53,10 @@ public class RolePermissions extends JpaBaseEntity implements Serializable {
|
|||||||
public RolePermissions() {
|
public RolePermissions() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public RolePermissions(String appId, String roleId) {
|
public RolePermissions(String appId, String roleId, String instId) {
|
||||||
this.appId = appId;
|
this.appId = appId;
|
||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
|
this.instId = instId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -64,11 +65,12 @@ public class RolePermissions extends JpaBaseEntity implements Serializable {
|
|||||||
* @param roleId String
|
* @param roleId String
|
||||||
* @param resourceId String
|
* @param resourceId String
|
||||||
*/
|
*/
|
||||||
public RolePermissions(String appId, String roleId, String resourceId) {
|
public RolePermissions(String appId, String roleId, String resourceId , String instId) {
|
||||||
this.id = WebContext.genId();
|
this.id = WebContext.genId();
|
||||||
this.appId = appId;
|
this.appId = appId;
|
||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
this.resourceId = resourceId;
|
this.resourceId = resourceId;
|
||||||
|
this.instId = instId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#端口号
|
#端口号
|
||||||
application:
|
application:
|
||||||
name: maxkey-gateway-server
|
name: maxkey-gateway-server
|
||||||
formatted-version: v3.1.1 GA
|
formatted-version: v3.2.0 GA
|
||||||
server:
|
server:
|
||||||
port: 9000
|
port: 9000
|
||||||
spring:
|
spring:
|
||||||
|
|||||||
@ -120,6 +120,7 @@ public class ActiveDirectoryOrganizationService extends AbstractSynchronizerSer
|
|||||||
org.setStreet(LdapUtils.getAttributeStringValue(OrganizationalUnit.STREET,attributeMap));
|
org.setStreet(LdapUtils.getAttributeStringValue(OrganizationalUnit.STREET,attributeMap));
|
||||||
org.setPostalCode(LdapUtils.getAttributeStringValue(OrganizationalUnit.POSTALCODE,attributeMap));
|
org.setPostalCode(LdapUtils.getAttributeStringValue(OrganizationalUnit.POSTALCODE,attributeMap));
|
||||||
org.setDescription(LdapUtils.getAttributeStringValue(OrganizationalUnit.DESCRIPTION,attributeMap));
|
org.setDescription(LdapUtils.getAttributeStringValue(OrganizationalUnit.DESCRIPTION,attributeMap));
|
||||||
|
org.setInstId(this.synchronizer.getInstId());
|
||||||
orgsNamePathMap.put(org.getNamePath(), org);
|
orgsNamePathMap.put(org.getNamePath(), org);
|
||||||
_logger.info("org " + org);
|
_logger.info("org " + org);
|
||||||
organizationsService.insert(org);
|
organizationsService.insert(org);
|
||||||
|
|||||||
@ -151,6 +151,7 @@ public class ActiveDirectoryUsersService extends AbstractSynchronizerService
|
|||||||
userInfo.setUserType("EMPLOYEE");
|
userInfo.setUserType("EMPLOYEE");
|
||||||
userInfo.setTimeZone("Asia/Shanghai");
|
userInfo.setTimeZone("Asia/Shanghai");
|
||||||
userInfo.setStatus(1);
|
userInfo.setStatus(1);
|
||||||
|
userInfo.setInstId(this.synchronizer.getInstId());
|
||||||
UserInfo quser=new UserInfo();
|
UserInfo quser=new UserInfo();
|
||||||
quser.setUsername(userInfo.getUsername());
|
quser.setUsername(userInfo.getUsername());
|
||||||
UserInfo loadedUser=userInfoService.load(quser);
|
UserInfo loadedUser=userInfoService.load(quser);
|
||||||
|
|||||||
@ -18,12 +18,10 @@
|
|||||||
package org.maxkey.synchronizer.dingding;
|
package org.maxkey.synchronizer.dingding;
|
||||||
|
|
||||||
import org.maxkey.entity.Organizations;
|
import org.maxkey.entity.Organizations;
|
||||||
import org.maxkey.entity.Synchronizers;
|
import org.maxkey.synchronizer.AbstractSynchronizerService;
|
||||||
import org.maxkey.persistence.service.OrganizationsService;
|
|
||||||
import org.maxkey.synchronizer.ISynchronizerService;
|
import org.maxkey.synchronizer.ISynchronizerService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.dingtalk.api.DefaultDingTalkClient;
|
import com.dingtalk.api.DefaultDingTalkClient;
|
||||||
import com.dingtalk.api.DingTalkClient;
|
import com.dingtalk.api.DingTalkClient;
|
||||||
@ -33,14 +31,11 @@ import com.dingtalk.api.response.OapiV2DepartmentListsubResponse.DeptBaseRespons
|
|||||||
import com.taobao.api.ApiException;
|
import com.taobao.api.ApiException;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class DingdingOrganizationService implements ISynchronizerService{
|
public class DingdingOrganizationService extends AbstractSynchronizerService implements ISynchronizerService{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(DingdingOrganizationService.class);
|
final static Logger _logger = LoggerFactory.getLogger(DingdingOrganizationService.class);
|
||||||
|
|
||||||
OapiV2DepartmentListsubResponse rspDepts;
|
OapiV2DepartmentListsubResponse rspDepts;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OrganizationsService organizationsService;
|
|
||||||
|
|
||||||
String access_token;
|
String access_token;
|
||||||
|
|
||||||
public void sync() {
|
public void sync() {
|
||||||
@ -78,6 +73,7 @@ public class DingdingOrganizationService implements ISynchronizerService{
|
|||||||
org.setId(dept.getDeptId()+"");
|
org.setId(dept.getDeptId()+"");
|
||||||
org.setName(dept.getName());
|
org.setName(dept.getName());
|
||||||
org.setParentId(dept.getParentId()+"");
|
org.setParentId(dept.getParentId()+"");
|
||||||
|
org.setInstId(this.synchronizer.getInstId());
|
||||||
return org;
|
return org;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,19 +90,6 @@ public class DingdingOrganizationService implements ISynchronizerService{
|
|||||||
public OapiV2DepartmentListsubResponse getRspDepts() {
|
public OapiV2DepartmentListsubResponse getRspDepts() {
|
||||||
return rspDepts;
|
return rspDepts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrganizationsService getOrganizationsService() {
|
|
||||||
return organizationsService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrganizationsService(OrganizationsService organizationsService) {
|
|
||||||
this.organizationsService = organizationsService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSynchronizer(Synchronizers Synchronizer) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,12 +48,13 @@ public class DingdingSynchronizerService implements ISynchronizerService{
|
|||||||
_logger.info("Sync ...");
|
_logger.info("Sync ...");
|
||||||
dingdingAccessTokenService.setAppkey(synchronizer.getPrincipal());
|
dingdingAccessTokenService.setAppkey(synchronizer.getPrincipal());
|
||||||
dingdingAccessTokenService.setAppsecret(synchronizer.getCredentials());
|
dingdingAccessTokenService.setAppsecret(synchronizer.getCredentials());
|
||||||
|
|
||||||
String access_token=dingdingAccessTokenService.requestToken();
|
String access_token=dingdingAccessTokenService.requestToken();
|
||||||
|
|
||||||
|
dingdingOrganizationService.setSynchronizer(synchronizer);
|
||||||
dingdingOrganizationService.setAccess_token(access_token);
|
dingdingOrganizationService.setAccess_token(access_token);
|
||||||
dingdingOrganizationService.sync();
|
dingdingOrganizationService.sync();
|
||||||
|
|
||||||
|
dingdingUsersService.setSynchronizer(synchronizer);
|
||||||
dingdingUsersService.setAccess_token(access_token);
|
dingdingUsersService.setAccess_token(access_token);
|
||||||
dingdingUsersService.sync();
|
dingdingUsersService.sync();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,9 +19,8 @@ package org.maxkey.synchronizer.dingding;
|
|||||||
|
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.joda.time.format.DateTimeFormat;
|
import org.joda.time.format.DateTimeFormat;
|
||||||
import org.maxkey.entity.Synchronizers;
|
|
||||||
import org.maxkey.entity.UserInfo;
|
import org.maxkey.entity.UserInfo;
|
||||||
import org.maxkey.persistence.service.UserInfoService;
|
import org.maxkey.synchronizer.AbstractSynchronizerService;
|
||||||
import org.maxkey.synchronizer.ISynchronizerService;
|
import org.maxkey.synchronizer.ISynchronizerService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -36,14 +35,11 @@ import com.dingtalk.api.response.OapiV2DepartmentListsubResponse.DeptBaseRespons
|
|||||||
import com.dingtalk.api.response.OapiV2UserListResponse.ListUserResponse;
|
import com.dingtalk.api.response.OapiV2UserListResponse.ListUserResponse;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class DingdingUsersService implements ISynchronizerService{
|
public class DingdingUsersService extends AbstractSynchronizerService implements ISynchronizerService{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(DingdingUsersService.class);
|
final static Logger _logger = LoggerFactory.getLogger(DingdingUsersService.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
DingdingOrganizationService organizationService;
|
DingdingOrganizationService dingdingOrganizationService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
UserInfoService userInfoService;
|
|
||||||
|
|
||||||
String access_token;
|
String access_token;
|
||||||
|
|
||||||
@ -51,7 +47,7 @@ public class DingdingUsersService implements ISynchronizerService{
|
|||||||
_logger.info("Sync Users...");
|
_logger.info("Sync Users...");
|
||||||
try {
|
try {
|
||||||
|
|
||||||
OapiV2DepartmentListsubResponse rspDepts = organizationService.getRspDepts();
|
OapiV2DepartmentListsubResponse rspDepts = dingdingOrganizationService.getRspDepts();
|
||||||
for(DeptBaseResponse dept : rspDepts.getResult()) {
|
for(DeptBaseResponse dept : rspDepts.getResult()) {
|
||||||
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/list");
|
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/list");
|
||||||
OapiV2UserListRequest req = new OapiV2UserListRequest();
|
OapiV2UserListRequest req = new OapiV2UserListRequest();
|
||||||
@ -101,35 +97,19 @@ public class DingdingUsersService implements ISynchronizerService{
|
|||||||
userInfo.setWorkPhoneNumber(user.getTelephone());//鍏徃鐢佃瘽
|
userInfo.setWorkPhoneNumber(user.getTelephone());//鍏徃鐢佃瘽
|
||||||
userInfo.setWorkOfficeName(user.getWorkPlace());//鍔炲叕瀹<EFBFBD>
|
userInfo.setWorkOfficeName(user.getWorkPlace());//鍔炲叕瀹<EFBFBD>
|
||||||
userInfo.setDescription(user.getRemark());//澶囨敞
|
userInfo.setDescription(user.getRemark());//澶囨敞
|
||||||
|
userInfo.setInstId(this.synchronizer.getInstId());
|
||||||
return userInfo;
|
return userInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOrganizationService(DingdingOrganizationService organizationService) {
|
|
||||||
this.organizationService = organizationService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAccess_token(String access_token) {
|
public void setAccess_token(String access_token) {
|
||||||
this.access_token = access_token;
|
this.access_token = access_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserInfoService getUserInfoService() {
|
public void setDingdingOrganizationService(DingdingOrganizationService dingdingOrganizationService) {
|
||||||
return userInfoService;
|
this.dingdingOrganizationService = dingdingOrganizationService;
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserInfoService(UserInfoService userInfoService) {
|
|
||||||
this.userInfoService = userInfoService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DingdingOrganizationService getOrganizationService() {
|
|
||||||
return organizationService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSynchronizer(Synchronizers Synchronizer) {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,6 +117,7 @@ public class LdapOrganizationService extends AbstractSynchronizerService implem
|
|||||||
org.setPhone(LdapUtils.getAttributeStringValue(OrganizationalUnit.TELEPHONENUMBER,attributeMap));
|
org.setPhone(LdapUtils.getAttributeStringValue(OrganizationalUnit.TELEPHONENUMBER,attributeMap));
|
||||||
org.setFax(LdapUtils.getAttributeStringValue(OrganizationalUnit.FACSIMILETELEPHONENUMBER,attributeMap));
|
org.setFax(LdapUtils.getAttributeStringValue(OrganizationalUnit.FACSIMILETELEPHONENUMBER,attributeMap));
|
||||||
org.setDescription(LdapUtils.getAttributeStringValue(OrganizationalUnit.DESCRIPTION,attributeMap));
|
org.setDescription(LdapUtils.getAttributeStringValue(OrganizationalUnit.DESCRIPTION,attributeMap));
|
||||||
|
org.setInstId(this.synchronizer.getInstId());
|
||||||
orgsNamePathMap.put(org.getNamePath(), org);
|
orgsNamePathMap.put(org.getNamePath(), org);
|
||||||
_logger.info("org " + org);
|
_logger.info("org " + org);
|
||||||
organizationsService.insert(org);
|
organizationsService.insert(org);
|
||||||
|
|||||||
@ -49,6 +49,7 @@ public class LdapSynchronizerService implements ISynchronizerService{
|
|||||||
synchronizer.getCredentials(),
|
synchronizer.getCredentials(),
|
||||||
synchronizer.getBasedn());
|
synchronizer.getBasedn());
|
||||||
ldapUtils.openConnection();
|
ldapUtils.openConnection();
|
||||||
|
|
||||||
ldapOrganizationService.setSynchronizer(synchronizer);
|
ldapOrganizationService.setSynchronizer(synchronizer);
|
||||||
ldapUsersService.setSynchronizer(synchronizer);
|
ldapUsersService.setSynchronizer(synchronizer);
|
||||||
|
|
||||||
@ -58,6 +59,7 @@ public class LdapSynchronizerService implements ISynchronizerService{
|
|||||||
|
|
||||||
ldapOrganizationService.sync();
|
ldapOrganizationService.sync();
|
||||||
ldapUsersService.sync();
|
ldapUsersService.sync();
|
||||||
|
|
||||||
ldapUtils.close();
|
ldapUtils.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -138,6 +138,7 @@ public class LdapUsersService extends AbstractSynchronizerService implements IS
|
|||||||
userInfo.setUserType("EMPLOYEE");
|
userInfo.setUserType("EMPLOYEE");
|
||||||
userInfo.setTimeZone("Asia/Shanghai");
|
userInfo.setTimeZone("Asia/Shanghai");
|
||||||
userInfo.setStatus(1);
|
userInfo.setStatus(1);
|
||||||
|
userInfo.setInstId(this.synchronizer.getInstId());
|
||||||
UserInfo quser=new UserInfo();
|
UserInfo quser=new UserInfo();
|
||||||
quser.setUsername(userInfo.getUsername());
|
quser.setUsername(userInfo.getUsername());
|
||||||
UserInfo loadedUser=userInfoService.load(quser);
|
UserInfo loadedUser=userInfoService.load(quser);
|
||||||
|
|||||||
@ -40,6 +40,7 @@ public class ReorgDeptSynchronizerService implements ISynchronizerService {
|
|||||||
|
|
||||||
public void sync() throws Exception {
|
public void sync() throws Exception {
|
||||||
_logger.info("Sync ...");
|
_logger.info("Sync ...");
|
||||||
|
reorgDeptService.setSynchronizer(synchronizer);
|
||||||
reorgDeptService.sync();
|
reorgDeptService.sync();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,22 +22,16 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.maxkey.constants.ConstantsStatus;
|
import org.maxkey.constants.ConstantsStatus;
|
||||||
import org.maxkey.entity.Organizations;
|
import org.maxkey.entity.Organizations;
|
||||||
import org.maxkey.entity.Synchronizers;
|
import org.maxkey.synchronizer.AbstractSynchronizerService;
|
||||||
import org.maxkey.persistence.service.OrganizationsService;
|
|
||||||
import org.maxkey.synchronizer.ISynchronizerService;
|
import org.maxkey.synchronizer.ISynchronizerService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ReorgDeptService implements ISynchronizerService{
|
public class ReorgDeptService extends AbstractSynchronizerService implements ISynchronizerService{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(ReorgDeptService.class);
|
final static Logger _logger = LoggerFactory.getLogger(ReorgDeptService.class);
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OrganizationsService organizationsService;
|
|
||||||
|
|
||||||
|
|
||||||
String rootParentOrgId = "-1";
|
String rootParentOrgId = "-1";
|
||||||
|
|
||||||
public void sync() {
|
public void sync() {
|
||||||
@ -46,7 +40,9 @@ public class ReorgDeptService implements ISynchronizerService{
|
|||||||
try {
|
try {
|
||||||
long responseCount =0;
|
long responseCount =0;
|
||||||
HashMap<String,Organizations>orgCastMap =new HashMap<String,Organizations>();
|
HashMap<String,Organizations>orgCastMap =new HashMap<String,Organizations>();
|
||||||
List<Organizations> listOrg = organizationsService.findAll();
|
Organizations queryOrganization =new Organizations();
|
||||||
|
queryOrganization.setInstId(this.synchronizer.getInstId());
|
||||||
|
List<Organizations> listOrg = organizationsService.query(queryOrganization);
|
||||||
|
|
||||||
buildNamePath(orgCastMap,listOrg);
|
buildNamePath(orgCastMap,listOrg);
|
||||||
|
|
||||||
@ -104,18 +100,4 @@ public class ReorgDeptService implements ISynchronizerService{
|
|||||||
}while(listOrg.size()>listOrg.size());
|
}while(listOrg.size()>listOrg.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrganizationsService getOrganizationsService() {
|
|
||||||
return organizationsService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrganizationsService(OrganizationsService organizationsService) {
|
|
||||||
this.organizationsService = organizationsService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSynchronizer(Synchronizers synchronizer) {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,8 +18,7 @@
|
|||||||
package org.maxkey.synchronizer.workweixin;
|
package org.maxkey.synchronizer.workweixin;
|
||||||
|
|
||||||
import org.maxkey.entity.Organizations;
|
import org.maxkey.entity.Organizations;
|
||||||
import org.maxkey.entity.Synchronizers;
|
import org.maxkey.synchronizer.AbstractSynchronizerService;
|
||||||
import org.maxkey.persistence.service.OrganizationsService;
|
|
||||||
import org.maxkey.synchronizer.ISynchronizerService;
|
import org.maxkey.synchronizer.ISynchronizerService;
|
||||||
import org.maxkey.synchronizer.workweixin.entity.WorkWeixinDepts;
|
import org.maxkey.synchronizer.workweixin.entity.WorkWeixinDepts;
|
||||||
import org.maxkey.synchronizer.workweixin.entity.WorkWeixinDeptsResponse;
|
import org.maxkey.synchronizer.workweixin.entity.WorkWeixinDeptsResponse;
|
||||||
@ -27,16 +26,12 @@ import org.maxkey.util.JsonUtils;
|
|||||||
import org.maxkey.web.HttpRequestAdapter;
|
import org.maxkey.web.HttpRequestAdapter;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class WorkweixinOrganizationService implements ISynchronizerService{
|
public class WorkweixinOrganizationService extends AbstractSynchronizerService implements ISynchronizerService{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(WorkweixinOrganizationService.class);
|
final static Logger _logger = LoggerFactory.getLogger(WorkweixinOrganizationService.class);
|
||||||
|
|
||||||
@Autowired
|
|
||||||
OrganizationsService organizationsService;
|
|
||||||
|
|
||||||
WorkWeixinDeptsResponse deptsResponse;
|
WorkWeixinDeptsResponse deptsResponse;
|
||||||
|
|
||||||
String access_token;
|
String access_token;
|
||||||
@ -77,6 +72,7 @@ public class WorkweixinOrganizationService implements ISynchronizerService{
|
|||||||
org.setName(dept.getName());
|
org.setName(dept.getName());
|
||||||
org.setParentId(dept.getParentid()+"");
|
org.setParentId(dept.getParentid()+"");
|
||||||
org.setSortIndex(dept.getOrder());
|
org.setSortIndex(dept.getOrder());
|
||||||
|
org.setInstId(this.synchronizer.getInstId());
|
||||||
return org;
|
return org;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,18 +92,4 @@ public class WorkweixinOrganizationService implements ISynchronizerService{
|
|||||||
this.deptsResponse = deptsResponse;
|
this.deptsResponse = deptsResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrganizationsService getOrganizationsService() {
|
|
||||||
return organizationsService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrganizationsService(OrganizationsService organizationsService) {
|
|
||||||
this.organizationsService = organizationsService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSynchronizer(Synchronizers synchronizer) {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,9 +48,11 @@ public class WorkweixinSynchronizerService implements ISynchronizerService{
|
|||||||
workweixinAccessTokenService.setCorpsecret(synchronizer.getCredentials());
|
workweixinAccessTokenService.setCorpsecret(synchronizer.getCredentials());
|
||||||
String access_token=workweixinAccessTokenService.requestToken();
|
String access_token=workweixinAccessTokenService.requestToken();
|
||||||
|
|
||||||
|
workweixinOrganizationService.setSynchronizer(synchronizer);
|
||||||
workweixinOrganizationService.setAccess_token(access_token);
|
workweixinOrganizationService.setAccess_token(access_token);
|
||||||
workweixinOrganizationService.sync();
|
workweixinOrganizationService.sync();
|
||||||
|
|
||||||
|
workweixinUsersService.setSynchronizer(synchronizer);
|
||||||
workweixinUsersService.setAccess_token(access_token);
|
workweixinUsersService.setAccess_token(access_token);
|
||||||
workweixinUsersService.sync();
|
workweixinUsersService.sync();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,9 +17,8 @@
|
|||||||
|
|
||||||
package org.maxkey.synchronizer.workweixin;
|
package org.maxkey.synchronizer.workweixin;
|
||||||
|
|
||||||
import org.maxkey.entity.Synchronizers;
|
|
||||||
import org.maxkey.entity.UserInfo;
|
import org.maxkey.entity.UserInfo;
|
||||||
import org.maxkey.persistence.service.UserInfoService;
|
import org.maxkey.synchronizer.AbstractSynchronizerService;
|
||||||
import org.maxkey.synchronizer.ISynchronizerService;
|
import org.maxkey.synchronizer.ISynchronizerService;
|
||||||
import org.maxkey.synchronizer.workweixin.entity.WorkWeixinDepts;
|
import org.maxkey.synchronizer.workweixin.entity.WorkWeixinDepts;
|
||||||
import org.maxkey.synchronizer.workweixin.entity.WorkWeixinUsers;
|
import org.maxkey.synchronizer.workweixin.entity.WorkWeixinUsers;
|
||||||
@ -32,14 +31,11 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class WorkweixinUsersService implements ISynchronizerService{
|
public class WorkweixinUsersService extends AbstractSynchronizerService implements ISynchronizerService{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(WorkweixinUsersService.class);
|
final static Logger _logger = LoggerFactory.getLogger(WorkweixinUsersService.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
WorkweixinOrganizationService organizationService;
|
WorkweixinOrganizationService workweixinOrganizationService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
UserInfoService userInfoService;
|
|
||||||
|
|
||||||
String access_token;
|
String access_token;
|
||||||
|
|
||||||
@ -49,7 +45,7 @@ public class WorkweixinUsersService implements ISynchronizerService{
|
|||||||
_logger.info("Sync Users...");
|
_logger.info("Sync Users...");
|
||||||
try {
|
try {
|
||||||
|
|
||||||
for (WorkWeixinDepts dept : organizationService.getDeptsResponse().getDepartment()) {
|
for (WorkWeixinDepts dept : workweixinOrganizationService.getDeptsResponse().getDepartment()) {
|
||||||
HttpRequestAdapter request =new HttpRequestAdapter();
|
HttpRequestAdapter request =new HttpRequestAdapter();
|
||||||
String responseBody = request.get(String.format(USERS_URL, access_token,dept.getId()));
|
String responseBody = request.get(String.format(USERS_URL, access_token,dept.getId()));
|
||||||
WorkWeixinUsersResponse usersResponse =JsonUtils.gson2Object(responseBody, WorkWeixinUsersResponse.class);
|
WorkWeixinUsersResponse usersResponse =JsonUtils.gson2Object(responseBody, WorkWeixinUsersResponse.class);
|
||||||
@ -88,35 +84,17 @@ public class WorkweixinUsersService implements ISynchronizerService{
|
|||||||
|
|
||||||
//激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业。
|
//激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业。
|
||||||
userInfo.setStatus(user.getStatus());
|
userInfo.setStatus(user.getStatus());
|
||||||
|
userInfo.setInstId(this.synchronizer.getInstId());
|
||||||
return userInfo;
|
return userInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOrganizationService(WorkweixinOrganizationService organizationService) {
|
|
||||||
this.organizationService = organizationService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAccess_token(String access_token) {
|
public void setAccess_token(String access_token) {
|
||||||
this.access_token = access_token;
|
this.access_token = access_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserInfoService getUserInfoService() {
|
public void setWorkweixinOrganizationService(WorkweixinOrganizationService workweixinOrganizationService) {
|
||||||
return userInfoService;
|
this.workweixinOrganizationService = workweixinOrganizationService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUserInfoService(UserInfoService userInfoService) {
|
|
||||||
this.userInfoService = userInfoService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public WorkweixinOrganizationService getOrganizationService() {
|
|
||||||
return organizationService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setSynchronizer(Synchronizers Synchronizer) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,14 +36,14 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "1-2认证总地址文档模块")
|
@Tag(name = "1-2认证总地址文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(AuthorizeEndpoint.class);
|
final static Logger _logger = LoggerFactory.getLogger(AuthorizeEndpoint.class);
|
||||||
@ -52,7 +52,7 @@ public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
|||||||
AppsCasDetailsService casDetailsService;
|
AppsCasDetailsService casDetailsService;
|
||||||
|
|
||||||
//all single sign on url
|
//all single sign on url
|
||||||
@ApiOperation(value = "认证总地址接口", notes = "参数应用ID,分发到不同应用的认证地址",httpMethod="GET")
|
@Operation(summary = "认证总地址接口", description = "参数应用ID,分发到不同应用的认证地址",method="GET")
|
||||||
@RequestMapping("/authz/{id}")
|
@RequestMapping("/authz/{id}")
|
||||||
public ModelAndView authorize(
|
public ModelAndView authorize(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -26,10 +26,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
@Api(tags = "3-1-在线ticket文档模块")
|
@Tag(name = "3-1-在线ticket文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping(value={"/onlineticket"})
|
@RequestMapping(value={"/onlineticket"})
|
||||||
public class OnlineTicketEndpoint {
|
public class OnlineTicketEndpoint {
|
||||||
@ -38,7 +38,7 @@ public class OnlineTicketEndpoint {
|
|||||||
@Qualifier("onlineTicketServices")
|
@Qualifier("onlineTicketServices")
|
||||||
protected OnlineTicketServices onlineTicketServices;
|
protected OnlineTicketServices onlineTicketServices;
|
||||||
|
|
||||||
@ApiOperation(value = "在线ticket验证接口", notes = "",httpMethod="GET")
|
@Operation(summary = "在线ticket验证接口", description = "",method="GET")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value="/validate")
|
@RequestMapping(value="/validate")
|
||||||
public String ticketValidate(
|
public String ticketValidate(
|
||||||
|
|||||||
@ -34,14 +34,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
* https://apereo.github.io/cas/6.2.x/protocol/CAS-Protocol-Specification.html
|
* https://apereo.github.io/cas/6.2.x/protocol/CAS-Protocol-Specification.html
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-3-CAS API文档模块")
|
@Tag(name = "2-3-CAS API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class Cas10AuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
public class Cas10AuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ renew [OPTIONAL] - if this parameter is set, ticket validation will only succeed
|
|||||||
no<LF>
|
no<LF>
|
||||||
<LF>
|
<LF>
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "CAS 1.0 ticket验证接口", notes = "通过ticket获取当前登录用户信息",httpMethod="POST")
|
@Operation(summary = "CAS 1.0 ticket验证接口", description = "通过ticket获取当前登录用户信息",method="POST")
|
||||||
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_VALIDATE)
|
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_VALIDATE)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public String validate(
|
public String validate(
|
||||||
|
|||||||
@ -43,14 +43,14 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
* https://apereo.github.io/cas/6.2.x/protocol/CAS-Protocol-V2-Specification.html
|
* https://apereo.github.io/cas/6.2.x/protocol/CAS-Protocol-V2-Specification.html
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-3-CAS API文档模块")
|
@Tag(name = "2-3-CAS API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class Cas20AuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
public class Cas20AuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ INTERNAL_ERROR - an internal error occurred during ticket validation
|
|||||||
|
|
||||||
For all error codes, it is RECOMMENDED that CAS provide a more detailed message as the body of the \<cas:authenticationFailure\> block of the XML response.
|
For all error codes, it is RECOMMENDED that CAS provide a more detailed message as the body of the \<cas:authenticationFailure\> block of the XML response.
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "CAS 2.0 ticket验证接口", notes = "通过ticket获取当前登录用户信息",httpMethod="POST")
|
@Operation(summary = "CAS 2.0 ticket验证接口", description = "通过ticket获取当前登录用户信息",method="POST")
|
||||||
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_SERVICE_VALIDATE,produces =MediaType.APPLICATION_XML_VALUE)
|
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_SERVICE_VALIDATE,produces =MediaType.APPLICATION_XML_VALUE)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public String serviceValidate(
|
public String serviceValidate(
|
||||||
@ -293,7 +293,7 @@ Response on ticket validation failure:
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ApiOperation(value = "CAS 2.0 ticket代理验证接口", notes = "通过ticket获取当前登录用户信息",httpMethod="POST")
|
@Operation(summary = "CAS 2.0 ticket代理验证接口", description = "通过ticket获取当前登录用户信息",method="POST")
|
||||||
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_PROXY_VALIDATE,produces =MediaType.APPLICATION_XML_VALUE)
|
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_PROXY_VALIDATE,produces =MediaType.APPLICATION_XML_VALUE)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public String proxy(
|
public String proxy(
|
||||||
|
|||||||
@ -42,20 +42,20 @@ import org.slf4j.LoggerFactory;
|
|||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
* https://apereo.github.io/cas/6.2.x/protocol/CAS-Protocol-Specification.html
|
* https://apereo.github.io/cas/6.2.x/protocol/CAS-Protocol-Specification.html
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-3-CAS API文档模块")
|
@Tag(name = "2-3-CAS API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class Cas30AuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
public class Cas30AuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
||||||
|
|
||||||
final static Logger _logger = LoggerFactory.getLogger(Cas30AuthorizeEndpoint.class);
|
final static Logger _logger = LoggerFactory.getLogger(Cas30AuthorizeEndpoint.class);
|
||||||
|
|
||||||
@ApiOperation(value = "CAS 3.0 ticket验证接口", notes = "通过ticket获取当前登录用户信息",httpMethod="POST")
|
@Operation(summary = "CAS 3.0 ticket验证接口", description = "通过ticket获取当前登录用户信息",method="POST")
|
||||||
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_SERVICE_VALIDATE_V3)
|
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_SERVICE_VALIDATE_V3)
|
||||||
public void serviceValidate(
|
public void serviceValidate(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@ -115,7 +115,7 @@ public class Cas30AuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
httpResponseAdapter.write(response,serviceResponseBuilder.serviceResponseBuilder(),format);
|
httpResponseAdapter.write(response,serviceResponseBuilder.serviceResponseBuilder(),format);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "CAS 3.0 ProxyTicket代理验证接口", notes = "通过ProxyGrantingTicket获取ProxyTicket",httpMethod="POST")
|
@Operation(summary = "CAS 3.0 ProxyTicket代理验证接口", description = "通过ProxyGrantingTicket获取ProxyTicket",method="POST")
|
||||||
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_PROXY_V3)
|
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_PROXY_V3)
|
||||||
public void proxy(
|
public void proxy(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@ -141,7 +141,7 @@ public class Cas30AuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
httpResponseAdapter.write(response,proxyServiceResponseBuilder.serviceResponseBuilder(),format);
|
httpResponseAdapter.write(response,proxyServiceResponseBuilder.serviceResponseBuilder(),format);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "CAS 3.0 ticket代理验证接口", notes = "通过ProxyTicket获取当前登录用户信息",httpMethod="POST")
|
@Operation(summary = "CAS 3.0 ticket代理验证接口", description = "通过ProxyTicket获取当前登录用户信息",method="POST")
|
||||||
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_PROXY_VALIDATE_V3)
|
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_PROXY_VALIDATE_V3)
|
||||||
public void proxy(
|
public void proxy(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -42,20 +42,21 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
* https://apereo.github.io/cas/6.2.x/protocol/CAS-Protocol.html
|
* https://apereo.github.io/cas/6.2.x/protocol/CAS-Protocol.html
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-3-CAS API文档模块")
|
@Tag(name = "2-3-CAS API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class CasAuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
public class CasAuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
||||||
|
|
||||||
final static Logger _logger = LoggerFactory.getLogger(CasAuthorizeEndpoint.class);
|
final static Logger _logger = LoggerFactory.getLogger(CasAuthorizeEndpoint.class);
|
||||||
|
|
||||||
@ApiOperation(value = "CAS页面跳转service认证接口", notes = "传递参数service",httpMethod="GET")
|
@Operation(summary = "CAS页面跳转service认证接口", description = "传递参数service",method="GET")
|
||||||
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_LOGIN)
|
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_LOGIN)
|
||||||
public ModelAndView casLogin(
|
public ModelAndView casLogin(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@ -68,7 +69,7 @@ public class CasAuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "CAS页面跳转应用ID认证接口", notes = "传递参数应用ID",httpMethod="GET")
|
@Operation(summary = "CAS页面跳转应用ID认证接口", description = "传递参数应用ID",method="GET")
|
||||||
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_BASE + "/{id}")
|
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_BASE + "/{id}")
|
||||||
public ModelAndView authorize(
|
public ModelAndView authorize(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@ -171,7 +172,7 @@ public class CasAuthorizeEndpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
* @param casService
|
* @param casService
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "CAS注销接口", notes = "CAS注销接口",httpMethod="GET")
|
@Operation(summary = "CAS注销接口", description = "CAS注销接口",method="GET")
|
||||||
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_LOGOUT)
|
@RequestMapping(CasConstants.ENDPOINT.ENDPOINT_LOGOUT)
|
||||||
public ModelAndView logout(
|
public ModelAndView logout(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -50,14 +50,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
* https://apereo.github.io/cas/6.2.x/protocol/REST-Protocol.html
|
* https://apereo.github.io/cas/6.2.x/protocol/REST-Protocol.html
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-4-CAS REST API文档模块")
|
@Tag(name = "2-4-CAS REST API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class CasRestV1Endpoint extends CasBaseAuthorizeEndpoint{
|
public class CasRestV1Endpoint extends CasBaseAuthorizeEndpoint{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(CasRestV1Endpoint.class);
|
final static Logger _logger = LoggerFactory.getLogger(CasRestV1Endpoint.class);
|
||||||
@ -66,7 +66,7 @@ public class CasRestV1Endpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
@Qualifier("authenticationProvider")
|
@Qualifier("authenticationProvider")
|
||||||
AbstractAuthenticationProvider authenticationProvider ;
|
AbstractAuthenticationProvider authenticationProvider ;
|
||||||
|
|
||||||
@ApiOperation(value = "CAS REST认证接口", notes = "通过用户名密码获取TGT",httpMethod="POST")
|
@Operation(summary = "CAS REST认证接口", description = "通过用户名密码获取TGT",method="POST")
|
||||||
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_TICKET_V1,
|
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_TICKET_V1,
|
||||||
method=RequestMethod.POST,
|
method=RequestMethod.POST,
|
||||||
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
|
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
|
||||||
@ -105,7 +105,7 @@ public class CasRestV1Endpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "CAS REST认证接口", notes = "通过TGT获取ST",httpMethod="POST")
|
@Operation(summary = "CAS REST认证接口", description = "通过TGT获取ST",method="POST")
|
||||||
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_TICKET_V1+"/{ticketGrantingTicket}",
|
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_TICKET_V1+"/{ticketGrantingTicket}",
|
||||||
method=RequestMethod.POST,
|
method=RequestMethod.POST,
|
||||||
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
|
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
|
||||||
@ -132,7 +132,7 @@ public class CasRestV1Endpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
}
|
}
|
||||||
return new ResponseEntity<>("", HttpStatus.BAD_REQUEST);
|
return new ResponseEntity<>("", HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
@ApiOperation(value = "CAS REST认证接口", notes = "检查TGT状态",httpMethod="GET")
|
@Operation(summary = "CAS REST认证接口", description = "检查TGT状态",method="GET")
|
||||||
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_TICKET_V1 + "/{ticketGrantingTicket}",
|
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_TICKET_V1 + "/{ticketGrantingTicket}",
|
||||||
method=RequestMethod.GET)
|
method=RequestMethod.GET)
|
||||||
public ResponseEntity<String> verifyTicketGrantingTicketStatus(
|
public ResponseEntity<String> verifyTicketGrantingTicketStatus(
|
||||||
@ -151,7 +151,7 @@ public class CasRestV1Endpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
return new ResponseEntity<>("", HttpStatus.NOT_FOUND);
|
return new ResponseEntity<>("", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "CAS REST认证接口", notes = "注销TGT状态",httpMethod="DELETE")
|
@Operation(summary = "CAS REST认证接口", description = "注销TGT状态",method="DELETE")
|
||||||
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_TICKET_V1+"/{ticketGrantingTicket}",
|
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_TICKET_V1+"/{ticketGrantingTicket}",
|
||||||
method=RequestMethod.DELETE)
|
method=RequestMethod.DELETE)
|
||||||
public ResponseEntity<String> destroyTicketGrantingTicket(
|
public ResponseEntity<String> destroyTicketGrantingTicket(
|
||||||
@ -170,7 +170,7 @@ public class CasRestV1Endpoint extends CasBaseAuthorizeEndpoint{
|
|||||||
return new ResponseEntity<>("", HttpStatus.NOT_FOUND);
|
return new ResponseEntity<>("", HttpStatus.NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "CAS REST认证接口", notes = "用户名密码登录接口",httpMethod="POST")
|
@Operation(summary = "CAS REST认证接口", description = "用户名密码登录接口",method="POST")
|
||||||
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_USERS_V1,
|
@RequestMapping(value=CasConstants.ENDPOINT.ENDPOINT_REST_USERS_V1,
|
||||||
method=RequestMethod.POST,
|
method=RequestMethod.POST,
|
||||||
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
|
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
|
||||||
|
|||||||
@ -37,19 +37,19 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-8-ExtendApi接口文档模块")
|
@Tag(name = "2-8-ExtendApi接口文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class ExtendApiAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
public class ExtendApiAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(ExtendApiAuthorizeEndpoint.class);
|
final static Logger _logger = LoggerFactory.getLogger(ExtendApiAuthorizeEndpoint.class);
|
||||||
|
|
||||||
@ApiOperation(value = "ExtendApi认证地址接口", notes = "参数应用ID",httpMethod="GET")
|
@Operation(summary = "ExtendApi认证地址接口", description = "参数应用ID",method="GET")
|
||||||
@RequestMapping("/authz/api/{id}")
|
@RequestMapping("/authz/api/{id}")
|
||||||
public ModelAndView authorize(HttpServletRequest request,@PathVariable("id") String id){
|
public ModelAndView authorize(HttpServletRequest request,@PathVariable("id") String id){
|
||||||
|
|
||||||
|
|||||||
@ -40,14 +40,14 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-7-FormBased接口文档模块")
|
@Tag(name = "2-7-FormBased接口文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class FormBasedAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
public class FormBasedAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
||||||
final static Logger _logger = LoggerFactory.getLogger(FormBasedAuthorizeEndpoint.class);
|
final static Logger _logger = LoggerFactory.getLogger(FormBasedAuthorizeEndpoint.class);
|
||||||
@ -57,7 +57,7 @@ public class FormBasedAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
|||||||
|
|
||||||
FormBasedDefaultAdapter defaultFormBasedAdapter=new FormBasedDefaultAdapter();
|
FormBasedDefaultAdapter defaultFormBasedAdapter=new FormBasedDefaultAdapter();
|
||||||
|
|
||||||
@ApiOperation(value = "FormBased认证地址接口", notes = "参数应用ID",httpMethod="GET")
|
@Operation(summary = "FormBased认证地址接口", description = "参数应用ID",method="GET")
|
||||||
@RequestMapping("/authz/formbased/{id}")
|
@RequestMapping("/authz/formbased/{id}")
|
||||||
public ModelAndView authorize(
|
public ModelAndView authorize(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -43,14 +43,14 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-5-JWT令牌接口")
|
@Tag(name = "2-5-JWT令牌接口")
|
||||||
@Controller
|
@Controller
|
||||||
public class JwtAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
public class JwtAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ public class JwtAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
|||||||
@Autowired
|
@Autowired
|
||||||
ApplicationConfig applicationConfig;
|
ApplicationConfig applicationConfig;
|
||||||
|
|
||||||
@ApiOperation(value = "JWT应用ID认证接口", notes = "应用ID",httpMethod="GET")
|
@Operation(summary = "JWT应用ID认证接口", description = "应用ID",method="GET")
|
||||||
@RequestMapping("/authz/jwt/{id}")
|
@RequestMapping("/authz/jwt/{id}")
|
||||||
public ModelAndView authorize(
|
public ModelAndView authorize(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -66,8 +66,8 @@ import org.springframework.web.servlet.view.RedirectView;
|
|||||||
import org.springframework.web.util.UriComponents;
|
import org.springframework.web.util.UriComponents;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
import org.springframework.web.util.UriTemplate;
|
import org.springframework.web.util.UriTemplate;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -86,7 +86,7 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
* @author Vladimir Kryachko
|
* @author Vladimir Kryachko
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-1-OAuth v2.0 API文档模块")
|
@Tag(name = "2-1-OAuth v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
@SessionAttributes("authorizationRequest")
|
@SessionAttributes("authorizationRequest")
|
||||||
public class AuthorizationEndpoint extends AbstractEndpoint {
|
public class AuthorizationEndpoint extends AbstractEndpoint {
|
||||||
@ -111,7 +111,7 @@ public class AuthorizationEndpoint extends AbstractEndpoint {
|
|||||||
this.errorPage = errorPage;
|
this.errorPage = errorPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "OAuth 2.0 认证接口", notes = "传递参数应用ID,自动完成跳转认证拼接",httpMethod="GET")
|
@Operation(summary = "OAuth 2.0 认证接口", description = "传递参数应用ID,自动完成跳转认证拼接",method="GET")
|
||||||
@RequestMapping(OAuth2Constants.ENDPOINT.ENDPOINT_BASE + "/{id}")
|
@RequestMapping(OAuth2Constants.ENDPOINT.ENDPOINT_BASE + "/{id}")
|
||||||
public ModelAndView authorize(
|
public ModelAndView authorize(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@ -135,7 +135,7 @@ public class AuthorizationEndpoint extends AbstractEndpoint {
|
|||||||
return WebContext.redirect(authorizationUrl);
|
return WebContext.redirect(authorizationUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "OAuth 2.0 认证接口", notes = "传递参数client_id,response_type,redirect_uri等",httpMethod="GET")
|
@Operation(summary = "OAuth 2.0 认证接口", description = "传递参数client_id,response_type,redirect_uri等",method="GET")
|
||||||
@RequestMapping(value = {
|
@RequestMapping(value = {
|
||||||
OAuth2Constants.ENDPOINT.ENDPOINT_AUTHORIZE,
|
OAuth2Constants.ENDPOINT.ENDPOINT_AUTHORIZE,
|
||||||
OAuth2Constants.ENDPOINT.ENDPOINT_TENCENT_IOA_AUTHORIZE
|
OAuth2Constants.ENDPOINT.ENDPOINT_TENCENT_IOA_AUTHORIZE
|
||||||
|
|||||||
@ -45,8 +45,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controller which decodes access tokens for clients who are not able to do so (or where opaque token values are used).
|
* Controller which decodes access tokens for clients who are not able to do so (or where opaque token values are used).
|
||||||
@ -54,7 +54,7 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
* @author Luke Taylor
|
* @author Luke Taylor
|
||||||
* @author Joel D'sa
|
* @author Joel D'sa
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-1-OAuth v2.0 API文档模块")
|
@Tag(name = "2-1-OAuth v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class CheckTokenEndpoint {
|
public class CheckTokenEndpoint {
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ public class CheckTokenEndpoint {
|
|||||||
this.accessTokenConverter = accessTokenConverter;
|
this.accessTokenConverter = accessTokenConverter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "OAuth 2.0 token检查接口", notes = "传递参数token",httpMethod="POST")
|
@Operation(summary = "OAuth 2.0 token检查接口", description = "传递参数token",method="POST")
|
||||||
@RequestMapping(value = OAuth2Constants.ENDPOINT.ENDPOINT_CHECK_TOKEN)
|
@RequestMapping(value = OAuth2Constants.ENDPOINT.ENDPOINT_CHECK_TOKEN)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Map<String, ?> checkToken(@RequestParam(OAuth2Constants.PARAMETER.TOKEN) String value) {
|
public Map<String, ?> checkToken(@RequestParam(OAuth2Constants.PARAMETER.TOKEN) String value) {
|
||||||
|
|||||||
@ -53,8 +53,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -73,7 +73,7 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
* @author Dave Syer
|
* @author Dave Syer
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-1-OAuth v2.0 API文档模块")
|
@Tag(name = "2-1-OAuth v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class TokenEndpoint extends AbstractEndpoint {
|
public class TokenEndpoint extends AbstractEndpoint {
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ public class TokenEndpoint extends AbstractEndpoint {
|
|||||||
* @return OAuth2AccessToken Entity
|
* @return OAuth2AccessToken Entity
|
||||||
* @throws HttpRequestMethodNotSupportedException
|
* @throws HttpRequestMethodNotSupportedException
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "OAuth 2.0 获取AccessToken接口", notes = "传递参数token等",httpMethod="GET")
|
@Operation(summary = "OAuth 2.0 获取AccessToken接口", description = "传递参数token等",method="GET")
|
||||||
@RequestMapping(value = {
|
@RequestMapping(value = {
|
||||||
OAuth2Constants.ENDPOINT.ENDPOINT_TOKEN,
|
OAuth2Constants.ENDPOINT.ENDPOINT_TOKEN,
|
||||||
OAuth2Constants.ENDPOINT.ENDPOINT_TENCENT_IOA_TOKEN
|
OAuth2Constants.ENDPOINT.ENDPOINT_TENCENT_IOA_TOKEN
|
||||||
@ -103,7 +103,7 @@ public class TokenEndpoint extends AbstractEndpoint {
|
|||||||
return postAccessToken(parameters);
|
return postAccessToken(parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "OAuth 2.0 获取AccessToken接口", notes = "传递参数token等",httpMethod="POST")
|
@Operation(summary = "OAuth 2.0 获取AccessToken接口", description = "传递参数token等",method="POST")
|
||||||
@RequestMapping(value = {
|
@RequestMapping(value = {
|
||||||
OAuth2Constants.ENDPOINT.ENDPOINT_TOKEN,
|
OAuth2Constants.ENDPOINT.ENDPOINT_TOKEN,
|
||||||
OAuth2Constants.ENDPOINT.ENDPOINT_TENCENT_IOA_TOKEN
|
OAuth2Constants.ENDPOINT.ENDPOINT_TENCENT_IOA_TOKEN
|
||||||
|
|||||||
@ -51,6 +51,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
|||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestHeader;
|
import org.springframework.web.bind.annotation.RequestHeader;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import com.nimbusds.jose.EncryptionMethod;
|
import com.nimbusds.jose.EncryptionMethod;
|
||||||
import com.nimbusds.jose.JWEAlgorithm;
|
import com.nimbusds.jose.JWEAlgorithm;
|
||||||
@ -61,11 +62,12 @@ import com.nimbusds.jwt.EncryptedJWT;
|
|||||||
import com.nimbusds.jwt.JWT;
|
import com.nimbusds.jwt.JWT;
|
||||||
import com.nimbusds.jwt.JWTClaimsSet;
|
import com.nimbusds.jwt.JWTClaimsSet;
|
||||||
import com.nimbusds.jwt.JWTClaimsSet.Builder;
|
import com.nimbusds.jwt.JWTClaimsSet.Builder;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
import com.nimbusds.jwt.SignedJWT;
|
import com.nimbusds.jwt.SignedJWT;
|
||||||
|
|
||||||
@Api(tags = "2-1-OAuth v2.0 API文档模块")
|
@Tag(name = "2-1-OAuth v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class OpenIdConnectUserInfoEndpoint {
|
public class OpenIdConnectUserInfoEndpoint {
|
||||||
final static Logger _logger = LoggerFactory.getLogger(OpenIdConnectUserInfoEndpoint.class);
|
final static Logger _logger = LoggerFactory.getLogger(OpenIdConnectUserInfoEndpoint.class);
|
||||||
@ -107,8 +109,8 @@ public class OpenIdConnectUserInfoEndpoint {
|
|||||||
@Autowired
|
@Autowired
|
||||||
protected HttpResponseAdapter httpResponseAdapter;
|
protected HttpResponseAdapter httpResponseAdapter;
|
||||||
|
|
||||||
@ApiOperation(value = "OIDC 用户信息接口", notes = "传递Authorization参数access_token",httpMethod="GET")
|
@Operation(summary = "OIDC 用户信息接口", description = "传递Authorization参数access_token",method="GET")
|
||||||
@RequestMapping(value=OAuth2Constants.ENDPOINT.ENDPOINT_OPENID_CONNECT_USERINFO)
|
@RequestMapping(value=OAuth2Constants.ENDPOINT.ENDPOINT_OPENID_CONNECT_USERINFO, method={RequestMethod.POST, RequestMethod.GET})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public String connect10aUserInfo(
|
public String connect10aUserInfo(
|
||||||
@RequestHeader(value = "Authorization", required = true) String access_token,
|
@RequestHeader(value = "Authorization", required = true) String access_token,
|
||||||
|
|||||||
@ -49,11 +49,12 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
|||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestHeader;
|
import org.springframework.web.bind.annotation.RequestHeader;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
@Api(tags = "2-1-OAuth v2.0 API文档模块")
|
@Tag(name = "2-1-OAuth v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class UserInfoEndpoint {
|
public class UserInfoEndpoint {
|
||||||
final static Logger _logger = LoggerFactory.getLogger(UserInfoEndpoint.class);
|
final static Logger _logger = LoggerFactory.getLogger(UserInfoEndpoint.class);
|
||||||
@ -95,8 +96,8 @@ public class UserInfoEndpoint {
|
|||||||
@Autowired
|
@Autowired
|
||||||
protected HttpResponseAdapter httpResponseAdapter;
|
protected HttpResponseAdapter httpResponseAdapter;
|
||||||
|
|
||||||
@ApiOperation(value = "OAuth 2.0 用户信息接口", notes = "传递参数access_token",httpMethod="GET")
|
@Operation(summary = "OAuth 2.0 用户信息接口", description = "传递参数access_token",method="GET")
|
||||||
@RequestMapping(value=OAuth2Constants.ENDPOINT.ENDPOINT_USERINFO)
|
@RequestMapping(value=OAuth2Constants.ENDPOINT.ENDPOINT_USERINFO, method={RequestMethod.POST, RequestMethod.GET})
|
||||||
public void apiV20UserInfo(
|
public void apiV20UserInfo(
|
||||||
@RequestParam(value = "access_token", required = false) String access_token,
|
@RequestParam(value = "access_token", required = false) String access_token,
|
||||||
@RequestHeader(value = "authorization", required = false) String authorization_bearer,
|
@RequestHeader(value = "authorization", required = false) String authorization_bearer,
|
||||||
|
|||||||
@ -47,12 +47,13 @@ import org.springframework.beans.factory.annotation.Qualifier;
|
|||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
@Api(tags = "2-2-SAML v2.0 API文档模块")
|
@Tag(name = "2-2-SAML v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping(value = { "/metadata/saml20/" })
|
@RequestMapping(value = { "/metadata/saml20/" })
|
||||||
public class MetadataEndpoint {
|
public class MetadataEndpoint {
|
||||||
@ -75,8 +76,8 @@ public class MetadataEndpoint {
|
|||||||
|
|
||||||
public static String IDP_METADATA_PREFIX = "Idp_Metadata_";
|
public static String IDP_METADATA_PREFIX = "Idp_Metadata_";
|
||||||
|
|
||||||
@ApiOperation(value = "SAML 2.0 元数据接口", notes = "参数Idp_Metadata_应用ID",httpMethod="GET")
|
@Operation(summary = "SAML 2.0 元数据接口", description = "参数Idp_Metadata_应用ID",method="GET")
|
||||||
@RequestMapping(value = "/{appid}.xml",produces = "application/xml")
|
@RequestMapping(value = "/{appid}.xml",produces = "application/xml", method={RequestMethod.POST, RequestMethod.GET})
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public String metadata(HttpServletRequest request,
|
public String metadata(HttpServletRequest request,
|
||||||
HttpServletResponse response, @PathVariable("appid") String appId) {
|
HttpServletResponse response, @PathVariable("appid") String appId) {
|
||||||
|
|||||||
@ -40,8 +40,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* idp init not need extract SAML request message
|
* idp init not need extract SAML request message
|
||||||
@ -49,7 +49,7 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-2-SAML v2.0 API文档模块")
|
@Tag(name = "2-2-SAML v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class IdpInitEndpoint {
|
public class IdpInitEndpoint {
|
||||||
private final static Logger logger = LoggerFactory.getLogger(IdpInitEndpoint.class);
|
private final static Logger logger = LoggerFactory.getLogger(IdpInitEndpoint.class);
|
||||||
@ -85,7 +85,7 @@ public class IdpInitEndpoint {
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "SAML 2.0 IDP Init接口", notes = "传递参数应用ID",httpMethod="GET")
|
@Operation(summary = "SAML 2.0 IDP Init接口", description = "传递参数应用ID",method="GET")
|
||||||
@RequestMapping(value = "/authz/saml20/idpinit/{appid}", method=RequestMethod.GET)
|
@RequestMapping(value = "/authz/saml20/idpinit/{appid}", method=RequestMethod.GET)
|
||||||
public ModelAndView authorizeIdpInit(
|
public ModelAndView authorizeIdpInit(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -37,10 +37,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
@Api(tags = "2-2-SAML v2.0 API文档模块")
|
@Tag(name = "2-2-SAML v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class LogoutSamlEndpoint {
|
public class LogoutSamlEndpoint {
|
||||||
private final static Logger logger = LoggerFactory.getLogger(LogoutSamlEndpoint.class);
|
private final static Logger logger = LoggerFactory.getLogger(LogoutSamlEndpoint.class);
|
||||||
@ -53,7 +53,7 @@ public class LogoutSamlEndpoint {
|
|||||||
@Qualifier("samlValidaotrSuite")
|
@Qualifier("samlValidaotrSuite")
|
||||||
private SAML2ValidatorSuite validatorSuite;
|
private SAML2ValidatorSuite validatorSuite;
|
||||||
|
|
||||||
@ApiOperation(value = "SAML单点注销地址接口", notes = "",httpMethod="GET")
|
@Operation(summary = "SAML单点注销地址接口", description = "",method="GET")
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
@RequestMapping(value = "/logout/saml", method=RequestMethod.GET)
|
@RequestMapping(value = "/logout/saml", method=RequestMethod.GET)
|
||||||
public ModelAndView samlRedirectLogout(
|
public ModelAndView samlRedirectLogout(
|
||||||
|
|||||||
@ -45,10 +45,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
@Api(tags = "2-2-SAML v2.0 API文档模块")
|
@Tag(name = "2-2-SAML v2.0 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class SingleSignOnEndpoint {
|
public class SingleSignOnEndpoint {
|
||||||
private final static Logger logger = LoggerFactory.getLogger(SingleSignOnEndpoint.class);
|
private final static Logger logger = LoggerFactory.getLogger(SingleSignOnEndpoint.class);
|
||||||
@ -78,7 +78,7 @@ public class SingleSignOnEndpoint {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AppsSaml20DetailsService saml20DetailsService;
|
private AppsSaml20DetailsService saml20DetailsService;
|
||||||
|
|
||||||
@ApiOperation(value = "SAML 2.0 SP Init接收接口", notes = "传递参数应用ID",httpMethod="POST")
|
@Operation(summary = "SAML 2.0 SP Init接收接口", description = "传递参数应用ID",method="POST")
|
||||||
@RequestMapping(value = "/authz/saml20/{appid}", method=RequestMethod.POST)
|
@RequestMapping(value = "/authz/saml20/{appid}", method=RequestMethod.POST)
|
||||||
public ModelAndView authorizePost(
|
public ModelAndView authorizePost(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@ -88,7 +88,7 @@ public class SingleSignOnEndpoint {
|
|||||||
return extractSAMLRequest(extractPostBindingAdapter,appId,request);
|
return extractSAMLRequest(extractPostBindingAdapter,appId,request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "SAML 2.0 SP Init接收接口", notes = "传递参数应用ID",httpMethod="GET")
|
@Operation(summary = "SAML 2.0 SP Init接收接口", description = "传递参数应用ID",method="GET")
|
||||||
@RequestMapping(value = "/authz/saml20/{appid}", method=RequestMethod.GET)
|
@RequestMapping(value = "/authz/saml20/{appid}", method=RequestMethod.GET)
|
||||||
public ModelAndView authorizeRedirect(
|
public ModelAndView authorizeRedirect(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -43,14 +43,14 @@ import org.springframework.web.bind.annotation.PathVariable;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "2-6-TokenBased接口文档模块")
|
@Tag(name = "2-6-TokenBased接口文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class TokenBasedAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
public class TokenBasedAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ public class TokenBasedAuthorizeEndpoint extends AuthorizeBaseEndpoint{
|
|||||||
@Autowired
|
@Autowired
|
||||||
ApplicationConfig applicationConfig;
|
ApplicationConfig applicationConfig;
|
||||||
|
|
||||||
@ApiOperation(value = "TokenBased认证接口", notes = "传递参数应用ID",httpMethod="GET")
|
@Operation(summary = "TokenBased认证接口", description = "传递参数应用ID",method="GET")
|
||||||
@RequestMapping("/authz/tokenbased/{id}")
|
@RequestMapping("/authz/tokenbased/{id}")
|
||||||
public ModelAndView authorize(
|
public ModelAndView authorize(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
application.title =MaxKey
|
application.title =MaxKey
|
||||||
#for dynamic service discovery
|
#for dynamic service discovery
|
||||||
spring.application.name =maxkey-monitor
|
spring.application.name =maxkey-monitor
|
||||||
application.formatted-version =v3.1.1 GA
|
application.formatted-version =v3.2.0 GA
|
||||||
#nacos discovery
|
#nacos discovery
|
||||||
spring.cloud.nacos.discovery.enabled =${NACOS_DISCOVERY_ENABLED:false}
|
spring.cloud.nacos.discovery.enabled =${NACOS_DISCOVERY_ENABLED:false}
|
||||||
spring.cloud.nacos.discovery.instance-enabled =false
|
spring.cloud.nacos.discovery.instance-enabled =false
|
||||||
|
|||||||
@ -45,14 +45,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Crystal.Sea
|
* @author Crystal.Sea
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Api(tags = "1-1-登录接口文档模块")
|
@Tag(name = "1-1-登录接口文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class LoginEndpoint {
|
public class LoginEndpoint {
|
||||||
private static Logger _logger = LoggerFactory.getLogger(LoginEndpoint.class);
|
private static Logger _logger = LoggerFactory.getLogger(LoginEndpoint.class);
|
||||||
@ -92,7 +92,7 @@ public class LoginEndpoint {
|
|||||||
* init login
|
* init login
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ApiOperation(value = "登录接口", notes = "用户登录地址",httpMethod="GET")
|
@Operation(summary = "登录接口", description = "用户登录地址",method="GET")
|
||||||
@RequestMapping(value={"/login"})
|
@RequestMapping(value={"/login"})
|
||||||
public ModelAndView login() {
|
public ModelAndView login() {
|
||||||
_logger.debug("LoginController /login.");
|
_logger.debug("LoginController /login.");
|
||||||
|
|||||||
@ -48,10 +48,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
@Api(tags = "1-3-单点注销接口文档模块")
|
@Tag(name = "1-3-单点注销接口文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
public class LogoutEndpoint {
|
public class LogoutEndpoint {
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ public class LogoutEndpoint {
|
|||||||
@Qualifier("onlineTicketServices")
|
@Qualifier("onlineTicketServices")
|
||||||
protected OnlineTicketServices onlineTicketServices;
|
protected OnlineTicketServices onlineTicketServices;
|
||||||
|
|
||||||
@ApiOperation(value = "单点注销接口", notes = "reLoginUrl跳转地址",httpMethod="GET")
|
@Operation(summary = "单点注销接口", description = "reLoginUrl跳转地址",method="GET")
|
||||||
@RequestMapping(value={"/logout"})
|
@RequestMapping(value={"/logout"})
|
||||||
public ModelAndView logout(
|
public ModelAndView logout(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@ -80,7 +80,7 @@ public class LogoutEndpoint {
|
|||||||
return logoutModelAndView(request,response,"loggedout",reLoginUrl);
|
return logoutModelAndView(request,response,"loggedout",reLoginUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "登录超时接口", notes = "",httpMethod="GET")
|
@Operation(summary = "登录超时接口", description = "",method="GET")
|
||||||
@RequestMapping(value={"/timeout"})
|
@RequestMapping(value={"/timeout"})
|
||||||
public ModelAndView timeout(HttpServletRequest request, HttpServletResponse response){
|
public ModelAndView timeout(HttpServletRequest request, HttpServletResponse response){
|
||||||
return logoutModelAndView(request,response,"timeout",null);
|
return logoutModelAndView(request,response,"timeout",null);
|
||||||
|
|||||||
@ -336,7 +336,7 @@ maxkey.swagger.enable =true
|
|||||||
maxkey.swagger.title =MaxKey\u5355\u70b9\u767b\u5f55\u8ba4\u8bc1\u7cfb\u7edfAPI\u6587\u6863
|
maxkey.swagger.title =MaxKey\u5355\u70b9\u767b\u5f55\u8ba4\u8bc1\u7cfb\u7edfAPI\u6587\u6863
|
||||||
maxkey.swagger.description =MaxKey\u5355\u70b9\u767b\u5f55\u8ba4\u8bc1\u7cfb\u7edfAPI\u6587\u6863
|
maxkey.swagger.description =MaxKey\u5355\u70b9\u767b\u5f55\u8ba4\u8bc1\u7cfb\u7edfAPI\u6587\u6863
|
||||||
maxkey.swagger.version =${application.formatted-version}
|
maxkey.swagger.version =${application.formatted-version}
|
||||||
|
springdoc.packagesToScan =org.maxkey
|
||||||
############################################################################
|
############################################################################
|
||||||
#freemarker configuration #
|
#freemarker configuration #
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
#MaxKey Title and Version #
|
#MaxKey Title and Version #
|
||||||
############################################################################
|
############################################################################
|
||||||
application.title =MaxKey
|
application.title =MaxKey
|
||||||
application.formatted-version =v3.1.1 GA
|
application.formatted-version =v3.2.0 GA
|
||||||
#for dynamic service discovery
|
#for dynamic service discovery
|
||||||
spring.application.name =maxkey
|
spring.application.name =maxkey
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|||||||
@ -27,10 +27,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
@Api(tags = "基于时间令牌验证 API文档模块")
|
@Tag(name = "基于时间令牌验证 API文档模块")
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping(value={"/im/api/otp"})
|
@RequestMapping(value={"/im/api/otp"})
|
||||||
public class RestTimeBasedOtpController {
|
public class RestTimeBasedOtpController {
|
||||||
@ -43,7 +43,7 @@ public class RestTimeBasedOtpController {
|
|||||||
@Qualifier("userInfoService")
|
@Qualifier("userInfoService")
|
||||||
private UserInfoService userInfoService;
|
private UserInfoService userInfoService;
|
||||||
|
|
||||||
@ApiOperation(value = "基于时间令牌验证 API文档模块", notes = "传递参数username和token",httpMethod="GET")
|
@Operation(summary = "基于时间令牌验证 API文档模块", description = "传递参数username和token",method="GET")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value = "/timebased/validate", method = RequestMethod.GET)
|
@RequestMapping(value = "/timebased/validate", method = RequestMethod.GET)
|
||||||
public boolean getUser(@RequestParam String username,
|
public boolean getUser(@RequestParam String username,
|
||||||
|
|||||||
@ -129,9 +129,15 @@ public class GroupMemberController {
|
|||||||
String[] arrMemberNames = memberNames.split(",");
|
String[] arrMemberNames = memberNames.split(",");
|
||||||
|
|
||||||
for (int i = 0; i < arrMemberIds.length; i++) {
|
for (int i = 0; i < arrMemberIds.length; i++) {
|
||||||
GroupMember newGroupMember = new GroupMember(groupId,groupMember.getGroupName(), arrMemberIds[i], arrMemberNames[i],"USER");
|
GroupMember newGroupMember =
|
||||||
|
new GroupMember(
|
||||||
|
groupId,
|
||||||
|
groupMember.getGroupName(),
|
||||||
|
arrMemberIds[i],
|
||||||
|
arrMemberNames[i],
|
||||||
|
"USER",
|
||||||
|
WebContext.getUserInfo().getInstId());
|
||||||
newGroupMember.setId(WebContext.genId());
|
newGroupMember.setId(WebContext.genId());
|
||||||
newGroupMember.setInstId(WebContext.getUserInfo().getInstId());
|
|
||||||
result = groupMemberService.insert(newGroupMember);
|
result = groupMemberService.insert(newGroupMember);
|
||||||
}
|
}
|
||||||
if(!result) {
|
if(!result) {
|
||||||
|
|||||||
@ -109,9 +109,9 @@ public class GroupPrivilegesController {
|
|||||||
String[] arrAppIds = appIds.split(",");
|
String[] arrAppIds = appIds.split(",");
|
||||||
|
|
||||||
for (int i = 0; i < arrAppIds.length; i++) {
|
for (int i = 0; i < arrAppIds.length; i++) {
|
||||||
GroupPrivileges newGroupApp = new GroupPrivileges(groupId, arrAppIds[i]);
|
GroupPrivileges newGroupApp =
|
||||||
|
new GroupPrivileges(groupId, arrAppIds[i],WebContext.getUserInfo().getInstId());
|
||||||
newGroupApp.setId(WebContext.genId());
|
newGroupApp.setId(WebContext.genId());
|
||||||
newGroupApp.setInstId(WebContext.getUserInfo().getInstId());
|
|
||||||
result = groupPrivilegesService.insert(newGroupApp);
|
result = groupPrivilegesService.insert(newGroupApp);
|
||||||
}
|
}
|
||||||
if(!result) {
|
if(!result) {
|
||||||
|
|||||||
@ -62,8 +62,11 @@ public class PermissionsController {
|
|||||||
_logger.debug("-save :" + rolePermissions);
|
_logger.debug("-save :" + rolePermissions);
|
||||||
//have
|
//have
|
||||||
|
|
||||||
RolePermissions queryRolePermissions = new RolePermissions(rolePermissions.getAppId(),rolePermissions.getRoleId());
|
RolePermissions queryRolePermissions =
|
||||||
queryRolePermissions.setInstId(WebContext.getUserInfo().getInstId());
|
new RolePermissions(
|
||||||
|
rolePermissions.getAppId(),
|
||||||
|
rolePermissions.getRoleId(),
|
||||||
|
WebContext.getUserInfo().getInstId());
|
||||||
List<RolePermissions> rolePermissionsedList = rolesService.queryRolePermissions(queryRolePermissions);
|
List<RolePermissions> rolePermissionsedList = rolesService.queryRolePermissions(queryRolePermissions);
|
||||||
|
|
||||||
HashMap<String,String >permedMap =new HashMap<String,String >();
|
HashMap<String,String >permedMap =new HashMap<String,String >();
|
||||||
@ -114,8 +117,11 @@ public class PermissionsController {
|
|||||||
public List<RolePermissions> querypermissions(@ModelAttribute("rolePermissions") RolePermissions rolePermissions) {
|
public List<RolePermissions> querypermissions(@ModelAttribute("rolePermissions") RolePermissions rolePermissions) {
|
||||||
_logger.debug("-querypermissions :" + rolePermissions);
|
_logger.debug("-querypermissions :" + rolePermissions);
|
||||||
//have
|
//have
|
||||||
RolePermissions queryRolePermissions = new RolePermissions(rolePermissions.getAppId(),rolePermissions.getRoleId());
|
RolePermissions queryRolePermissions =
|
||||||
queryRolePermissions.setInstId(WebContext.getUserInfo().getInstId());
|
new RolePermissions(
|
||||||
|
rolePermissions.getAppId(),
|
||||||
|
rolePermissions.getRoleId(),
|
||||||
|
WebContext.getUserInfo().getInstId());
|
||||||
List<RolePermissions> rolePermissionsedList = rolesService.queryRolePermissions(queryRolePermissions);
|
List<RolePermissions> rolePermissionsedList = rolesService.queryRolePermissions(queryRolePermissions);
|
||||||
return rolePermissionsedList;
|
return rolePermissionsedList;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -116,9 +116,15 @@ public class RoleMemberController {
|
|||||||
String[] arrMemberNames = memberNames.split(",");
|
String[] arrMemberNames = memberNames.split(",");
|
||||||
|
|
||||||
for (int i = 0; i < arrMemberIds.length; i++) {
|
for (int i = 0; i < arrMemberIds.length; i++) {
|
||||||
RoleMember newRoleMember = new RoleMember(groupId,roleMember.getRoleName(), arrMemberIds[i], arrMemberNames[i],"USER");
|
RoleMember newRoleMember =
|
||||||
|
new RoleMember(
|
||||||
|
groupId,
|
||||||
|
roleMember.getRoleName(),
|
||||||
|
arrMemberIds[i],
|
||||||
|
arrMemberNames[i],
|
||||||
|
"USER",
|
||||||
|
WebContext.getUserInfo().getInstId());
|
||||||
newRoleMember.setId(WebContext.genId());
|
newRoleMember.setId(WebContext.genId());
|
||||||
newRoleMember.setInstId(WebContext.getUserInfo().getInstId());
|
|
||||||
result = roleMemberService.insert(newRoleMember);
|
result = roleMemberService.insert(newRoleMember);
|
||||||
}
|
}
|
||||||
if(!result) {
|
if(!result) {
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
#MaxKey Title and Version #
|
#MaxKey Title and Version #
|
||||||
############################################################################
|
############################################################################
|
||||||
application.title =MaxKey-Mgt
|
application.title =MaxKey-Mgt
|
||||||
application.formatted-version =v3.1.1 GA
|
application.formatted-version =v3.2.0 GA
|
||||||
#for dynamic service discovery
|
#for dynamic service discovery
|
||||||
spring.application.name =maxkey-mgt
|
spring.application.name =maxkey-mgt
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user