Commit a1936a0f authored by duanruiming's avatar duanruiming

Revert "[update] 鉴权"

This reverts commit 3f8e9f14
parent cb3b9282
......@@ -46,7 +46,6 @@
<spring-cloud-alibaba.version>0.2.1.RELEASE</spring-cloud-alibaba.version>
<druid.version>1.1.5</druid.version>
<swagger.version>2.9.2</swagger.version>
<swagger-models-version>1.5.22</swagger-models-version>
<lombok.version>1.18.22</lombok.version>
<hutool.version>5.7.17</hutool.version>
<lang3.version>3.12.0</lang3.version>
......@@ -61,24 +60,12 @@
<validator-version>6.0.1.Final</validator-version>
<mybatis-plus-version>3.5.1</mybatis-plus-version>
<guava-version>22.0</guava-version>
<oauth2-version>2.2.5.RELEASE</oauth2-version>
<jjwt-version>0.9.1</jjwt-version>
<harbor.ip.port>10.102.1.182:5000</harbor.ip.port>
</properties>
<!-- 依赖声明 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
<version>${oauth2-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
......@@ -179,17 +166,6 @@
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
<exclusions>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>${swagger-models-version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
......
......@@ -26,26 +26,6 @@
</properties>
<dependencies>
<!-- 鉴权包 start -->
<!-- actuator包解决起动报documentationPluginsBootstrapper错误问题-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
<dependency>
<groupId>com.wanji</groupId>
<artifactId>identity-client-starter</artifactId>
<version>1.2</version>
</dependency>
<!-- 鉴权包 end -->
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
......
package net.wanji.web.config;
import com.wanji.identity.auth.IdentityResourceServerConfig;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.framework.rest.HeaderMapRequestWrapper;
import net.wanji.common.utils.cache.IgniteClientCacheUtil;
import net.wanji.common.utils.cookie.CookieUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.oauth2.common.OAuth2AccessToken;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
import org.springframework.security.web.context.SecurityContextPersistenceFilter;
import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static net.wanji.common.framework.Constants.Cache.LOGIN_CACHE;
/**
* @Description: 资源服务器配置
* @Author
* @Date 2020/4/12 21:01
*/
@Configuration
@EnableResourceServer
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Slf4j
public class ResourceServerConfig extends IdentityResourceServerConfig {
@Override
public void configure(HttpSecurity http) throws Exception {
// 放开全部
http.authorizeRequests()
.antMatchers(whiteList.toArray(new String[whiteList.size()])).permitAll()
.anyRequest().authenticated()
.and().cors()
.and().csrf().disable()
.addFilterBefore(new OncePerRequestFilter() {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
String breakerToken = " ";
// 判断header里有没有authorization,有则赋值给breakertoken,没有则根据tokenid
if (!StringUtils.isEmpty(request.getHeader(HttpHeaders.AUTHORIZATION))) {
breakerToken = request.getHeader(HttpHeaders.AUTHORIZATION);
} else {
String tokenId = "";
// 移动端的tokenid在请求头里,pc端的在cookie里
String mobileTokenId = request.getHeader("tokenId");
if (!StringUtils.isEmpty(mobileTokenId)) {
tokenId = mobileTokenId;
} else {
tokenId = CookieUtil.getUid(request, "tokenId");
}
if (!StringUtils.isEmpty(tokenId)) {
try {
OAuth2AccessToken oAuth2AccessToken = (OAuth2AccessToken) IgniteClientCacheUtil.getValue(LOGIN_CACHE, tokenId);
breakerToken = oAuth2AccessToken.getTokenType() + " " + oAuth2AccessToken.getValue();
} catch (Exception e) {
e.printStackTrace();
}
}
}
HeaderMapRequestWrapper requestWrapper = new HeaderMapRequestWrapper(request);
if (!StringUtils.isEmpty(breakerToken)) {
//将cookie中的token放到header,供oauth鉴权使用
requestWrapper.addHeader(HttpHeaders.AUTHORIZATION, breakerToken);
}
try {
filterChain.doFilter(requestWrapper, response);
} catch (Exception e) {
log.error("配置信息错误:{}", e);
}
}
}, SecurityContextPersistenceFilter.class);
}
//访问白名单
private static final List<String> whiteList = new ArrayList<String>() {{
//swagger
add("/webjars/**");
add("/resources/**");
add("/swagger-ui.html");
add("/swagger-resources/**");
add("/v2/api-docs");
add("/getSwaggerToken");
add("/");
add("/**/*.html");
add("/**/*.htm");
add("/**/*.woff");
add("/**/*.woff2");
add("/**/*.ttf");
add("/**/*.svg");
add("/**/*.css");
add("/**/*.png");
add("/**/*.jpg");
add("/**/*.gif");
add("/**/*.ico");
add("/**/*.json");
add("/**/*.js");
add("/**/*.txt");
add("/**");
}};
}
package net.wanji.web.config;
import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties;
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType;
import org.springframework.boot.actuate.endpoint.ExposableEndpoint;
import org.springframework.boot.actuate.endpoint.web.*;
import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier;
import org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier;
import org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
......@@ -21,10 +11,6 @@ import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@Configuration
@EnableSwagger2
public class Swagger2 {
......@@ -53,21 +39,4 @@ public class Swagger2 {
.description("城市交通信号厂商调用服务API")
.build();
}
@Bean
public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpointsSupplier webEndpointsSupplier, ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier controllerEndpointsSupplier, EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties corsProperties, WebEndpointProperties webEndpointProperties, Environment environment) {
List<ExposableEndpoint<?>> allEndpoints = new ArrayList();
Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints();
allEndpoints.addAll(webEndpoints);
allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());
allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
String basePath = webEndpointProperties.getBasePath();
EndpointMapping endpointMapping = new EndpointMapping(basePath);
boolean shouldRegisterLinksMapping = this.shouldRegisterLinksMapping(webEndpointProperties, environment, basePath);
return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes, corsProperties.toCorsConfiguration(), new EndpointLinksResolver(allEndpoints, basePath), shouldRegisterLinksMapping, null);
}
private boolean shouldRegisterLinksMapping(WebEndpointProperties webEndpointProperties, Environment environment, String basePath) {
return webEndpointProperties.getDiscovery().isEnabled() && (StringUtils.hasText(basePath) || ManagementPortType.get(environment).equals(ManagementPortType.DIFFERENT));
}
}
\ No newline at end of file
......@@ -65,27 +65,4 @@ threadPoolConfig:
maxSize: 16
queueCapacity: 200
keepAliveTime: 6000
allowCoreTimeOut: false
#鉴权
security:
oauth2:
client:
# client-id、client-secret 要和认证服务中的配置一致
client-id: identity
client-secret: identity-secret
# 授权码认证方式需要的
user-authorization-uri: http://172.17.0.1:17040/oauth/authorize
# 密码模式需要用到的获取 token 的接口
access-token-uri: http://172.17.0.1:17040/oauth/token
scope: all
# 备选列表 password client_credentials authorization_code
grant-type: password
authorization:
# 当此服务端接收到来自客户端端的请求后,需要拿着请求中的 token 到认证服务端做 token 验证,就是请求的这个接口
check-token-access: http://172.17.0.1:17040/oauth/check_token
resource:
jwt:
key-uri: http://172.17.0.1:17040/oauth/token_key
key-value: dev
ignite-client:
address: 10.102.1.182:10800
\ No newline at end of file
allowCoreTimeOut: false
\ No newline at end of file
......@@ -33,15 +33,6 @@
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment