Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
SpringCloudAuthServer
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiachenqi
SpringCloudAuthServer
Commits
868e4ab3
Commit
868e4ab3
authored
Aug 23, 2019
by
gzt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加数据库操作,从数据库取数据判断
parent
7b8121e1
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
140 additions
and
19 deletions
+140
-19
pom.xml
client/pom.xml
+13
-2
AuthorizationServerConfiguration.java
...erver/client/config/AuthorizationServerConfiguration.java
+6
-3
MyUserDetailsService.java
...om/yingxin/server/client/config/MyUserDetailsService.java
+42
-0
SecurityConfig.java
...java/com/yingxin/server/client/config/SecurityConfig.java
+9
-13
UserDao.java
.../src/main/java/com/yingxin/server/client/dao/UserDao.java
+10
-1
User.java
...rc/main/java/com/yingxin/server/client/entities/User.java
+33
-0
application.yml
client/src/main/resources/application.yml
+27
-0
No files found.
client/pom.xml
View file @
868e4ab3
...
...
@@ -41,8 +41,19 @@
<artifactId>
spring-cloud-starter-security
</artifactId>
<version>
2.1.3.RELEASE
</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>
org.mybatis.spring.boot
</groupId>
<artifactId>
mybatis-spring-boot-starter
</artifactId>
<version>
2.1.0
</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<scope>
runtime
</scope>
<version>
5.1.47
</version>
</dependency>
</dependencies>
...
...
client/src/main/java/com/yingxin/server/client/config/AuthorizationServerConfiguration.java
View file @
868e4ab3
...
...
@@ -25,8 +25,10 @@ public class AuthorizationServerConfiguration extends AuthorizationServerConfig
@Autowired
private
AuthenticationManager
authenticationManager
;
@Autowired
UserDetailsService
u
serDetailsService
;
UserDetailsService
myU
serDetailsService
;
// 使用最基本的InMemoryTokenStore生成token
@Bean
...
...
@@ -44,9 +46,10 @@ public class AuthorizationServerConfiguration extends AuthorizationServerConfig
public
void
configure
(
ClientDetailsServiceConfigurer
clients
)
throws
Exception
{
clients
.
inMemory
()
.
withClient
(
"client1"
)
//用于标识用户ID
.
authorizedGrantTypes
(
"authorization_code"
,
"client_credentials"
,
"refresh_token"
)
//授权方式
.
authorizedGrantTypes
(
"authorization_code"
,
"client_credentials"
,
"
password"
,
"
refresh_token"
)
//授权方式
.
scopes
(
"test"
)
//授权范围
.
secret
(
PasswordEncoderFactories
.
createDelegatingPasswordEncoder
().
encode
(
"123456"
));
//客户端安全码,secret密码配置从 Spring Security 5.0开始必须以 {bcrypt}+加密后的密码 这种格式填写;
// .secret(PasswordEncoderFactories.createDelegatingPasswordEncoder().encode("123456"));passwordEncoder.encode("123456")
}
/**
...
...
@@ -70,7 +73,7 @@ public class AuthorizationServerConfiguration extends AuthorizationServerConfig
@Override
public
void
configure
(
AuthorizationServerEndpointsConfigurer
endpoints
)
throws
Exception
{
// 配置tokenStore,需要配置userDetailsService,否则refresh_token会报错
endpoints
.
authenticationManager
(
authenticationManager
).
tokenStore
(
memoryTokenStore
()).
userDetailsService
(
u
serDetailsService
);
endpoints
.
authenticationManager
(
authenticationManager
).
tokenStore
(
memoryTokenStore
()).
userDetailsService
(
myU
serDetailsService
);
}
...
...
client/src/main/java/com/yingxin/server/client/config/MyUserDetailsService.java
0 → 100644
View file @
868e4ab3
package
com
.
yingxin
.
server
.
client
.
config
;
import
com.yingxin.server.client.dao.UserDao
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.core.authority.AuthorityUtils
;
import
org.springframework.security.core.userdetails.User
;
import
org.springframework.security.core.userdetails.UserDetails
;
import
org.springframework.security.core.userdetails.UserDetailsService
;
import
org.springframework.security.core.userdetails.UsernameNotFoundException
;
import
org.springframework.security.crypto.factory.PasswordEncoderFactories
;
import
org.springframework.stereotype.Component
;
/**
* description//TODO
* 自定义登陆
* 配置用户
* 使用内存中的用户,实际项目中,一般使用的是数据库保存用户,具体的实现类可以使用JdbcDaoImpl或者JdbcUserDetailsManager
* @author gaozhentao
* @version 1.0
* @date 2019/8/13/**
*
*/
@Component
(
"myUserDetailsService"
)
public
class
MyUserDetailsService
implements
UserDetailsService
{
private
org
.
slf4j
.
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Autowired
private
UserDao
userDao
;
@Override
public
UserDetails
loadUserByUsername
(
String
username
)
throws
UsernameNotFoundException
{
logger
.
info
(
"登陆用户名:"
,
username
);
// return
return
new
User
(
username
,
PasswordEncoderFactories
.
createDelegatingPasswordEncoder
().
encode
((
userDao
.
findByUsername
(
username
)).
getPassword
()),
AuthorityUtils
.
commaSeparatedStringToAuthorityList
(
"admin"
));
}
}
client/src/main/java/com/yingxin/server/client/config/SecurityConfig.java
View file @
868e4ab3
package
com
.
yingxin
.
server
.
client
.
config
;
import
com.yingxin.server.client.dao.UserDao
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.security.authentication.AuthenticationManager
;
import
org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder
;
...
...
@@ -20,6 +22,10 @@ import org.springframework.security.provisioning.InMemoryUserDetailsManager;
*/
@EnableWebSecurity
//开启权限验证
public
class
SecurityConfig
extends
WebSecurityConfigurerAdapter
{
@Autowired
private
UserDetailsService
myUserDetailsService
;
/**
* 配置这个bean会在做AuthorizationServerConfigurer配置的时候使用
* @return
...
...
@@ -31,21 +37,11 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
return
super
.
authenticationManagerBean
();
}
/**
* 配置用户
* 使用内存中的用户,实际项目中,一般使用的是数据库保存用户,具体的实现类可以使用JdbcDaoImpl或者JdbcUserDetailsManager
* @return
*/
@Bean
@Override
protected
UserDetailsService
userDetailsService
()
{
InMemoryUserDetailsManager
manager
=
new
InMemoryUserDetailsManager
();
manager
.
createUser
(
User
.
withUsername
(
"admin"
).
password
(
PasswordEncoderFactories
.
createDelegatingPasswordEncoder
().
encode
(
"admin"
)).
authorities
(
"USER"
).
build
());
return
manager
;
}
@Override
protected
void
configure
(
AuthenticationManagerBuilder
auth
)
throws
Exception
{
auth
.
userDetailsService
(
userDetailsService
()
);
auth
.
userDetailsService
(
myUserDetailsService
);
}
}
client/src/main/java/com/yingxin/server/client/dao/UserDao.java
View file @
868e4ab3
package
com
.
yingxin
.
server
.
client
.
dao
;
import
com.yingxin.server.client.entities.User
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
/**
* description//TODO
*
...
...
@@ -7,5 +12,9 @@ package com.yingxin.server.client.dao;
* @version 1.0
* @date 2019/8/22
*/
public
class
UserDao
{
@Mapper
public
interface
UserDao
{
@Select
(
"select * from user where username = #{username}"
)
User
findByUsername
(
@Param
(
"username"
)
String
username
);
}
client/src/main/java/com/yingxin/server/client/entities/User.java
View file @
868e4ab3
...
...
@@ -8,5 +8,38 @@ package com.yingxin.server.client.entities;
* @date 2019/8/22
*/
public
class
User
{
private
Integer
uid
;
private
String
username
;
private
String
password
;
public
Integer
getUid
()
{
return
uid
;
}
public
void
setUid
(
Integer
uid
)
{
this
.
uid
=
uid
;
}
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
==
null
?
null
:
username
.
trim
();
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
==
null
?
null
:
password
.
trim
();
}
@Override
public
String
toString
()
{
return
"User{"
+
"uid="
+
uid
+
", username='"
+
username
+
'\''
+
", password='"
+
password
+
'\''
+
'}'
;
}
}
client/src/main/resources/application.yml
View file @
868e4ab3
server
:
port
:
8080
spring
:
datasource
:
# 数据源基本配置
username
:
root
password
:
root
driver-class-name
:
com.mysql.jdbc.Driver
url
:
jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false
# 数据源其他配置
initialSize
:
5
minIdle
:
5
maxActive
:
20
maxWait
:
60000
timeBetweenEvictionRunsMillis
:
60000
minEvictableIdleTimeMillis
:
300000
validationQuery
:
SELECT 1 FROM DUAL
testWhileIdle
:
true
testOnBorrow
:
false
testOnReturn
:
false
poolPreparedStatements
:
true
# 配置监控统计拦截的filters ,去掉后监控界面sql无法统计,'wall'用于防火墙
filters
:
stat,wall,log4j
mybatis
:
type-aliases-package
:
com.mybatis.demo.entities
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment