# Pig整合MaxKey流程整理
## 主要工作介紹
1.pig集成maxkey中CAS的单点登录
2.pig集成maxke的组织架构信息等
## pig介绍
### pig版本
#### pig后端版本:3.6
gitee地址:https://gitee.com/log4j/pig.git
#### pig前端版本:最新代码
gitee地址:https://gitee.com/log4j/pig-ui.git
## 流程梳理
### 1.pig-auth模块
#### 1.pom.xml的更改覆盖了pig的Oauth2的token生成方案
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2020 pig4cloud Authors. All Rights Reserved.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.pig4cloud</groupId>
<artifactId>pig</artifactId>
<version>3.6.7</version>
</parent>
<artifactId>pig-auth</artifactId>
<packaging>jar</packaging>
<description>pig 认证授权中心,基于 spring security oAuth2</description>
<dependencies>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>
<!--注册中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--断路器依赖-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-feign</artifactId>
</dependency>
<!--upms api、model 模块-->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-upms-api</artifactId>
</dependency>
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!--freemarker-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!--undertow容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<!-- log -->
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-log</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
```
#### PigTokenEndpoint中新增获取token的方法
```java
/*
* Copyright (c) 2020 pig4cloud Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.pig4cloud.pig.auth.endpoint;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.TemporalAccessorUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pig4cloud.pig.admin.api.entity.SysOauthClientDetails;
import com.pig4cloud.pig.admin.api.feign.RemoteClientDetailsService;
import com.pig4cloud.pig.admin.api.vo.TokenVo;
import com.pig4cloud.pig.auth.support.handler.PigAuthenticationFailureEventHandler;
import com.pig4cloud.pig.auth.utils.RedisUtils;
import com.pig4cloud.pig.auth.utils.TokenManager;
import com.pig4cloud.pig.common.core.constant.CacheConstants;
import com.pig4cloud.pig.common.core.constant.CommonConstants;
import com.pig4cloud.pig.common.core.util.R;
import com.pig4cloud.pig.common.core.util.RetOps;
import com.pig4cloud.pig.common.core.util.SpringContextHolder;
import com.pig4cloud.pig.common.security.annotation.Inner;
import com.pig4cloud.pig.common.security.service.PigUser;
import com.pig4cloud.pig.common.security.util.OAuth2EndpointUtils;
import com.pig4cloud.pig.common.security.util.OAuth2ErrorCodesExpand;
import com.pig4cloud.pig.common.security.util.OAuthClientException;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.CacheManager;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.server.ServletServerHttpResponse;
import org.springframework.security.authentication.event.LogoutSuccessEvent;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.oauth2.core.OAuth2AccessToken;
import org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse;
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
import org.springframework.security.oauth2.core.http.converter.OAuth2AccessTokenResponseHttpMessageConverter;
import org.springframework.security.oauth2.server.authorization.OAuth2Authorization;
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService;
import org.springframework.security.oauth2.server.authorization.OAuth2TokenType;
import org.springframework.security.oauth2.server.resource.InvalidBearerTokenException;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.security.Principal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author lengleng
* @date 2019/2/1 删除token端点
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/token")
public class PigTokenEndpoint {
private final HttpMessageConverter<OAuth2AccessToken
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MaxKey单点登录认证系统 v4.0.2.zip (2000个子文件)
asd 3B
gradlew.bat 3KB
start_maxkey_mgt.bat 2KB
start_maxkey.bat 2KB
release_frontend_docker.bat 1KB
start_maxkey_db.bat 680B
set_maxkey_env.bat 610B
release_cnf_standard.bat 180B
release_cnf_docker.bat 174B
release_cnf_jar.bat 171B
setEnvVars.bat 167B
.browserslistrc 703B
.checkstyle 316B
vue.config.cjs 1KB
babel.config.cjs 73B
mysqld.cnf 1KB
default.conf 824B
adfs-signing.crt 736B
style.dark.css 579KB
style.dark.css 579KB
style.compact.css 568KB
style.compact.css 568KB
Dockerfile 339B
Dockerfile 319B
Dockerfile 299B
Dockerfile 136B
统一认证+单点登录+OAuthor2协议演示.docx 2.01MB
demo.docx 11KB
demo.docx 11KB
.editorconfig 274B
maxkey.erm 111KB
spring.factories 927B
formbased_163email_sso_submint.ftl 2KB
formbased_redirect_post_submint.ftl 2KB
formbased_sso_submint.ftl 2KB
init_sso_credential.ftl 2KB
oauth_access_confirmation.ftl 1KB
authorize_common.ftl 1KB
formbased_wy_youdao_sso_submint.ftl 1KB
cas_sso_submint.ftl 1KB
jwt_sso_submint.ftl 833B
authorize_footer.ftl 791B
app_password_protected.ftl 786B
redirect_sso_submit.ftl 759B
oracle_ebs_sso_redirect.ftl 720B
index.ftl 609B
index.ftl 609B
index.ftl 609B
tokenbased_sso_submint.ftl 568B
authorize_refused.ftl 513B
formbased_redirect_submint.ftl 429B
redirect.ftl 181B
500.ftl 82B
404.ftl 78B
400.ftl 71B
503.ftl 64B
501.ftl 60B
accessdeny.ftl 12B
.gitattributes 30B
.gitignore 830B
.gitignore 8B
.gitignore 8B
.gitkeep 0B
.gitmodules 112B
build.gradle 36KB
build_standard.gradle 36KB
build_jar.gradle 32KB
build_docker.gradle 32KB
build.gradle 5KB
build_cnf.gradle 3KB
build_docker.gradle 2KB
build_jar.gradle 2KB
settings.gradle 2KB
build_docker.gradle 2KB
build_jar.gradle 2KB
build_docker.gradle 2KB
build_jar.gradle 2KB
build.gradle 2KB
build_standard.gradle 1KB
build_standard.gradle 1KB
build.gradle 1KB
build.gradle 1KB
build_standard.gradle 1018B
build.gradle 897B
build.gradle 600B
build.gradle 518B
build.gradle 443B
build.gradle 441B
build.gradle 434B
build.gradle 433B
build.gradle 429B
build.gradle 427B
build.gradle 372B
build.gradle 371B
build.gradle 370B
build.gradle 368B
build.gradle 366B
build.gradle 366B
build.gradle 361B
build.gradle 359B
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
芝麻粒儿
- 粉丝: 5w+
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功