diff --git a/boot-starter/boot-starter-security-oauth/README.md b/boot-starter/boot-starter-security-oauth/README.md
index 6fb0046..1dd883e 100644
--- a/boot-starter/boot-starter-security-oauth/README.md
+++ b/boot-starter/boot-starter-security-oauth/README.md
@@ -2,11 +2,12 @@
##本项目的参数配置说明
- 用户登录接口url`/user/login`
- 图片验证码获取接口url`/code/image` ,在进行图片验证码校验时传递参数为`imageCode`
+- 使用redis存储验证码,key是根据发起请求的`deviceId`生成的。所以生成和校验验证码的时候必须传入`deviceId`
- `ms.security.code.image.width` 图片验证码宽度,默认值是`67` 可以在请求中使用`width`参数设置
- `ms.security.code.image.height`图片验证码高度,默认值是`23` 可以在请求中使用`height`参数设置
- `ms.security.code.image.length`图片验证码的code长度,默认是`4` 不能在请求中设置
- `ms.security.code.image.expireIn` 图片验证码的有效时间`60`秒 不能在请求中设置
-- `ms.security.code.image.url` 需要进行验证码校验的地址,默认值是`/user/login` 可以是`/user/*`这种格式,多个适用,号分割
+- `ms.security.code.image.url` 需要进行验证码校验的地址,默认值是`/user/login` 可以是`/user/*`这种格式,多个使用,号分割
不能在请求中设置
- 本着增量开发的原则,可以实现`imageCodeUtil`生成验证码的方法,并定义名称为`imageCodeUtil`的bean便可替换原有的图片验证码
的生成逻辑
@@ -19,3 +20,10 @@
- 短信登录的接口为`/authentication/mobile`,传递参数为`smsCode`和`mobile`
- oauth2发起的请求的用户需要有一个`ROLE_USER`的用户权限
- oauth2中相同的用户会得到相同的token
+- `ms.security.oauth2.storeType`token的策略,不设置这个值的是时候默认生成`jwt`的token,如果设置值为`redis`的时候生成的默认的token将会存储在redis中
+- `ms.security.oauth2.jwtSigningKey` 生成jwt的token的秘钥
+- `ms.security.oauth2.clients[i].clientId` 配置oauth2授权的clientId
+- `ms.security.oauth2.clients[i].clientSecret` 配置oauth2授权的clientId对应的clientSecret
+- `ms.security.oauth2.clients[i].accessTokenValiditySeconds` 数组token过期时间,单位是秒
+- `ms.security.oauth2.clients[i].authorizedGrantTypes[i]` 数组,授权类型默认是"refresh_token","password","custom"
+- `ms.security.oauth2.clients[i].scopes[i]` 作用范围默认是"all","read","write"
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationProviderConfig.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationProviderConfig.java
index b0d49f1..dfba3fa 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationProviderConfig.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationProviderConfig.java
@@ -85,11 +85,14 @@ public class AuthorizationProviderConfig extends AuthorizationServerConfigurerAd
if (ArrayUtils.isNotEmpty(securityProperties.getOauth2().getClients())){
for (OAuth2ClientProperties client: securityProperties.getOauth2().getClients()){
builder.withClient(client.getClientId()).secret(client.getClientSecret())
+ //token的过期时间
.accessTokenValiditySeconds(client.getAccessTokenValiditySeconds())
- .authorizedGrantTypes("refresh_token","password")
+ //授权类型
+ .authorizedGrantTypes(client.getAuthorizedGrantTypes())
//refreshToken的过期时间,refreshToken是用来在用户无感知的情况下换取token的
- .refreshTokenValiditySeconds(2592000)
- .scopes("all","read","write");
+ .refreshTokenValiditySeconds(client.getAccessTokenValiditySeconds())
+ //授权scope
+ .scopes(client.getScopes());
}
}
}
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationResourceConfig.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationResourceConfig.java
index d963807..92a8e92 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationResourceConfig.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/config/authorization2/AuthorizationResourceConfig.java
@@ -22,10 +22,6 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
@EnableResourceServer
public class AuthorizationResourceConfig extends ResourceServerConfigurerAdapter {
- /**
- * todo 待优化,不唯一,应从启动参数中获取
- */
- public static final String DRUID = "/druid/*";
@Autowired
private MsAuthenticationFailureHandler msAuthenticationFailureHandler;
@@ -75,10 +71,6 @@ public class AuthorizationResourceConfig extends ResourceServerConfigurerAdapter
, SecurityConstants.FORM_LOGIN_PROCESSOR_URI
, SecurityConstants.GET_VALIDATE_CODE_URI
, SecurityConstants.LOGIN_PAGE
- , DRUID
- //用户注册或绑定的页面
- , "处理用户的注册绑定请求的url"
- ,"/social/signUp"
)
.permitAll()
//任何请求
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/controller/SecurityController.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/controller/SecurityController.java
index b9ee354..00c9a3c 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/controller/SecurityController.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/controller/SecurityController.java
@@ -27,13 +27,25 @@ public class SecurityController {
*/
private RequestCache requestCache = new HttpSessionRequestCache();
+ /**
+ * 告知前台,需要进行登录
+ * @param request
+ * @param response
+ * @return
+ * @throws IOException
+ */
@RequestMapping(SecurityConstants.LOGIN_PAGE)
@ResponseStatus(code = HttpStatus.UNAUTHORIZED)
public ServerResponse requireAuthentication(HttpServletRequest request, HttpServletResponse response) throws IOException {
//根据当前请求获取上一次请求的缓存
SavedRequest savedRequest = requestCache.getRequest(request, response);
- String redirectUrl = savedRequest.getRedirectUrl();
- log.info("用户访问的url是{}但未进行身份认证,触发了跳转。",redirectUrl);
+ String redirectUrl = null;
+ if(savedRequest !=null){
+ redirectUrl= savedRequest.getRedirectUrl();
+ }
+ if (redirectUrl!=null){
+ log.info("用户访问的url是{}但未进行身份认证,触发了跳转。",redirectUrl);
+ }
return ServerResponse.errorMsg("未进行身份认证");
}
}
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/master/OAuth2ClientProperties.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/master/OAuth2ClientProperties.java
index 78322ee..33aac34 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/master/OAuth2ClientProperties.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/master/OAuth2ClientProperties.java
@@ -9,13 +9,14 @@ import lombok.Setter;
@Getter
@Setter
public class OAuth2ClientProperties {
+
private String clientId;
private String clientSecret;
- private int accessTokenValiditySeconds;
+ private int accessTokenValiditySeconds = 2592000;
- private String authorizedGrantTypes;
+ private String[] authorizedGrantTypes = new String[]{"refresh_token","password","custom"};
- private String scopes;
+ private String[] scopes = new String[]{"all","read","write"};
}
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/master/SecurityProperties.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/master/SecurityProperties.java
index 32cc27f..83635d4 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/master/SecurityProperties.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/master/SecurityProperties.java
@@ -18,7 +18,5 @@ public class SecurityProperties {
private ValidateCodeProperties code = new ValidateCodeProperties();
- private Boolean createRememberTable = true;
-
private OAuth2Properties oauth2 = new OAuth2Properties();
}
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/mobile/SmsCodeAuthenticationSecurityConfig.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/mobile/SmsCodeAuthenticationSecurityConfig.java
index 46accd1..077dafc 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/mobile/SmsCodeAuthenticationSecurityConfig.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/mobile/SmsCodeAuthenticationSecurityConfig.java
@@ -27,7 +27,9 @@ public class SmsCodeAuthenticationSecurityConfig extends SecurityConfigurerAdapt
@Qualifier("msAuthenticationFailureHandler")
private AuthenticationFailureHandler authenticationFailureHandler;
- //todo 需要改成根据手机号获取用户的信息
+ /**
+ * todo 需要改成根据手机号获取用户的信息
+ */
@Autowired
@Qualifier("msUserDetailsServiceImpl")
private UserDetailsService userDetailsService;
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/ImageCodeProperties.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/ImageCodeProperties.java
index 9393d7c..1f1451a 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/ImageCodeProperties.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/ImageCodeProperties.java
@@ -1,11 +1,15 @@
package com.micro.fast.security.app.validate.code.config.param;
import com.micro.fast.security.app.master.SecurityConstants;
+import lombok.Getter;
+import lombok.Setter;
/**
* 图形验证码默认的配置
* @author lsy
*/
+@Getter
+@Setter
public class ImageCodeProperties extends SmsCodeProperties{
/**
* 验证码的宽度
@@ -23,21 +27,4 @@ public class ImageCodeProperties extends SmsCodeProperties{
setLength(4);
setUrl(SecurityConstants.FORM_LOGIN_PROCESSOR_URI);
}
-
- public int getWidth() {
- return width;
- }
-
- public void setWidth(int width) {
- this.width = width;
- }
-
- public int getHeight() {
- return height;
- }
-
- public void setHeight(int height) {
- this.height = height;
- }
-
}
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/SmsCodeProperties.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/SmsCodeProperties.java
index 53a2cfd..7a3e537 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/SmsCodeProperties.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/SmsCodeProperties.java
@@ -1,10 +1,14 @@
package com.micro.fast.security.app.validate.code.config.param;
import com.micro.fast.security.app.master.SecurityConstants;
+import lombok.Getter;
+import lombok.Setter;
/**
* @author lsy
*/
+@Getter
+@Setter
public class SmsCodeProperties {
/**
@@ -19,28 +23,4 @@ public class SmsCodeProperties {
* 需要进行验证码校验的url
*/
private String url = SecurityConstants.MOBILE_LOGIN_PROCESSOR_URI;
-
- public String getUrl() {
- return url;
- }
-
- public void setUrl(String url) {
- this.url = url;
- }
-
- public int getLength() {
- return length;
- }
-
- public void setLength(int length) {
- this.length = length;
- }
-
- public int getExpireIn() {
- return expireIn;
- }
-
- public void setExpireIn(int expireIn) {
- this.expireIn = expireIn;
- }
}
diff --git a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/ValidateCodeProperties.java b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/ValidateCodeProperties.java
index 2f75a31..0136ba3 100644
--- a/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/ValidateCodeProperties.java
+++ b/boot-starter/boot-starter-security-oauth/src/main/java/com/micro/fast/security/app/validate/code/config/param/ValidateCodeProperties.java
@@ -1,28 +1,17 @@
package com.micro.fast.security.app.validate.code.config.param;
+import lombok.Getter;
+import lombok.Setter;
+
/**
* 验证码配置参数
* @author lsy
*/
+@Getter
+@Setter
public class ValidateCodeProperties {
private ImageCodeProperties image = new ImageCodeProperties();
private SmsCodeProperties sms = new SmsCodeProperties();
-
- public SmsCodeProperties getSms() {
- return sms;
- }
-
- public void setSms(SmsCodeProperties sms) {
- this.sms = sms;
- }
-
- public ImageCodeProperties getImage() {
- return image;
- }
-
- public void setImage(ImageCodeProperties image) {
- this.image = image;
- }
}
diff --git a/ms/monitor-center/pom.xml b/ms/monitor-center/pom.xml
index 2ad019d..ccd66d9 100644
--- a/ms/monitor-center/pom.xml
+++ b/ms/monitor-center/pom.xml
@@ -15,13 +15,6 @@
0.0.1-SNAPSHOT
-
- UTF-8
- UTF-8
- 1.8
- Edgware.SR1
-
-
@@ -42,10 +35,15 @@
org.springframework.boot
spring-boot-starter-actuator
-
+
+
+ org.springframework.cloud
+ spring-cloud-starter-hystrix
+
+
org.springframework.cloud
- spring-cloud-starter-hystrix
+ spring-cloud-starter-hystrix-dashboard
@@ -64,7 +62,6 @@
io.zipkin.java
zipkin-autoconfigure-ui
- runtime
@@ -80,7 +77,20 @@
org.springframework.boot
spring-boot-maven-plugin
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+
+
+
+ com.spotify
+ docker-maven-plugin
+
+ ms-monitor-center
diff --git a/ms/monitor-center/src/main/java/com/micro/fast/monitor/center/MsMonitorCenterApplication.java b/ms/monitor-center/src/main/java/com/micro/fast/monitor/center/MsMonitorCenterApplication.java
index 2699c74..36747ee 100644
--- a/ms/monitor-center/src/main/java/com/micro/fast/monitor/center/MsMonitorCenterApplication.java
+++ b/ms/monitor-center/src/main/java/com/micro/fast/monitor/center/MsMonitorCenterApplication.java
@@ -2,6 +2,8 @@ package com.micro.fast.monitor.center;
import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.netflix.hystrix.EnableHystrix;
+import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.cloud.netflix.turbine.EnableTurbine;
import zipkin.server.EnableZipkinServer;
@@ -13,6 +15,8 @@ import zipkin.server.EnableZipkinServer;
@EnableTurbine
//集群间服务调用情况的聚合展示
@EnableZipkinServer
+@EnableHystrixDashboard
+@EnableHystrix
public class MsMonitorCenterApplication {
public static void main(String[] args) {
diff --git a/ms/oauth/src/main/java/com/micro/fast/oauth/impl/UserDetailsServiceImpl.java b/ms/oauth/src/main/java/com/micro/fast/oauth/impl/UserDetailsServiceImpl.java
index f831384..fb5302c 100644
--- a/ms/oauth/src/main/java/com/micro/fast/oauth/impl/UserDetailsServiceImpl.java
+++ b/ms/oauth/src/main/java/com/micro/fast/oauth/impl/UserDetailsServiceImpl.java
@@ -12,11 +12,12 @@ import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Component;
+
/**
* 获取用户的信息
* @author lsy
*/
-@Component
+@Component("msUserDetailsServiceImpl")
public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired