diff --git a/sso-auth-server/pom.xml b/sso-auth-server/pom.xml
index 19cbb68d3d15499415ef2a6fa9a98f7aa3773faf..70a415cf32d45fb10ba4422aca650d251523b861 100644
--- a/sso-auth-server/pom.xml
+++ b/sso-auth-server/pom.xml
@@ -35,6 +35,17 @@
spring-boot-starter-security
+
+ mysql
+ mysql-connector-java
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.4.0
+
+
org.springframework.security.oauth.boot
spring-security-oauth2-autoconfigure
diff --git a/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/SsoAuthServerApplication.java b/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/SsoAuthServerApplication.java
index 7c4560fb3b9f5dc320eec2cc7ed4644fa0f5f0f1..c84835c75ff27ccd610b4c6bc5812c434a89c49e 100644
--- a/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/SsoAuthServerApplication.java
+++ b/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/SsoAuthServerApplication.java
@@ -1,11 +1,14 @@
package org.xbdframework.sample.sso.authserver;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@EnableWebSecurity
@SpringBootApplication
+
+@MapperScan("org.xbdframework.sample.sso.authserver.mapper")
public class SsoAuthServerApplication {
public static void main(String[] args) {
diff --git a/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/confg/AuthorizationServerConfiguration.java b/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/confg/AuthorizationServerConfiguration.java
index a4adaee7bab688429fb08ade39b98b4429eda3b7..b66526807a0e2afed9426570f7e644bca1dd847d 100644
--- a/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/confg/AuthorizationServerConfiguration.java
+++ b/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/confg/AuthorizationServerConfiguration.java
@@ -22,27 +22,33 @@ public class AuthorizationServerConfiguration extends AuthorizationServerConfigu
@Autowired
private PasswordEncoder passwordEncoder;
+ //用来配置令牌端点的安全约束
@Override
public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
- security.allowFormAuthenticationForClients()
- .tokenKeyAccess("isAuthenticated()");
+ security
+ .tokenKeyAccess("permitAll()") //oauth/token_key是公开
+ .checkTokenAccess("permitAll()") //oauth/check_token公开
+ .allowFormAuthenticationForClients();//表单认证(申请令牌)
}
+ //客户端详情服务
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.withClientDetails(inMemoryClientDetailsService());
}
+ /// 使用in-memory存储
@Bean
public ClientDetailsService inMemoryClientDetailsService() throws Exception {
return new InMemoryClientDetailsServiceBuilder()
// client oa application
- .withClient("oa")
- .secret(passwordEncoder.encode("oa_secret"))
- .scopes("all")
+ .withClient("oa")// client_id 客户端标识
+ .secret(passwordEncoder.encode("oa_secret"))////客户端密钥
+ .scopes("all")// 允许的授权范围
+ // 该client允许的授权类型authorization_code,password,refresh_token,implicit,client_credentials
.authorizedGrantTypes("authorization_code", "refresh_token")
- .redirectUris("http://localhost:8080/oa/login", "http://www.baidu.com")
+ .redirectUris("http://localhost:8080/oa/login", "http://www.baidu.com")//加上验证回调地址
.accessTokenValiditySeconds(7200)
.autoApprove(true)
@@ -61,6 +67,7 @@ public class AuthorizationServerConfiguration extends AuthorizationServerConfigu
.build();
}
+ //令牌访问端点:用来配置令牌(token)的访问端点和令牌服务(token services)
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.accessTokenConverter(jwtAccessTokenConverter())
diff --git a/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/confg/WebSecurityConfiguration.java b/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/confg/WebSecurityConfiguration.java
index b715ff18c4792bf63f9ca11f7160ffcd2a327e12..f698befc2ac090e9ca077845b2d40af824f6a829 100644
--- a/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/confg/WebSecurityConfiguration.java
+++ b/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/confg/WebSecurityConfiguration.java
@@ -14,6 +14,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
+import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -21,9 +22,12 @@ import java.util.List;
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
+ @Resource
+ private UserDetailsService userDetailsService;
+
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
- auth.userDetailsService(userDetailsServiceBean()).passwordEncoder(passwordEncoder());
+ auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
@Override
@@ -43,28 +47,6 @@ public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
.and().csrf().disable().cors();
}
- @Bean
- @Override
- public UserDetailsService userDetailsServiceBean() {
- Collection users = buildUsers();
-
- return new InMemoryUserDetailsManager(users);
- }
-
- private Collection buildUsers() {
- String password = passwordEncoder().encode("123456");
-
- List users = new ArrayList<>();
-
- UserDetails user_admin = User.withUsername("admin").password(password).authorities("ADMIN", "USER").build();
- UserDetails user_user1 = User.withUsername("user 1").password(password).authorities("USER").build();
-
- users.add(user_admin);
- users.add(user_user1);
-
- return users;
- }
-
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
diff --git a/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/mapper/UserInfoMapper.java b/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/mapper/UserInfoMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..5f32077a9e6ae7a0a70ca87197897099db209ef7
--- /dev/null
+++ b/sso-auth-server/src/main/java/org/xbdframework/sample/sso/authserver/mapper/UserInfoMapper.java
@@ -0,0 +1,26 @@
+package org.xbdframework.sample.sso.authserver.mapper;
+
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.xbdframework.sample.sso.authserver.model.Menu;
+import org.xbdframework.sample.sso.authserver.model.Role;
+import org.xbdframework.sample.sso.authserver.model.Users;
+
+import java.util.List;
+
+public interface UserInfoMapper extends BaseMapper {
+ /**
+ * 根据用户 Id 查询用户角色
+ * @param id
+ * @return
+ */
+ List selectRoleByUserId(Integer id);
+ /**
+ * 根据用户 Id 查询菜单
+ * @param id
+ * @return
+ */
+ List