Skip to content

Commit 621807f

Browse files
committed
优化shiro配置
1 parent a398776 commit 621807f

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

hsweb-authorization/hsweb-authorization-shiro/src/main/java/org/hswebframework/web/authorization/shiro/ShiroAutoconfiguration.java

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import org.apache.shiro.cache.MemoryConstrainedCacheManager;
2626
import org.apache.shiro.mgt.DefaultSecurityManager;
2727
import org.apache.shiro.mgt.SecurityManager;
28+
import org.apache.shiro.realm.AuthorizingRealm;
29+
import org.apache.shiro.realm.Realm;
2830
import org.apache.shiro.session.mgt.DefaultSessionManager;
2931
import org.apache.shiro.spring.LifecycleBeanPostProcessor;
3032
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
@@ -60,6 +62,7 @@
6062
import org.springframework.web.bind.annotation.ResponseStatus;
6163
import org.springframework.web.bind.annotation.RestControllerAdvice;
6264

65+
import java.util.ArrayList;
6366
import java.util.Collections;
6467
import java.util.List;
6568

@@ -78,6 +81,9 @@ public class ShiroAutoconfiguration {
7881
@Autowired
7982
private ShiroProperties shiroProperties;
8083

84+
@Autowired(required = false)
85+
private List<DataAccessHandler> dataAccessHandlers;
86+
8187
@Bean
8288
public CacheManager shiroCacheManager() {
8389
if (cacheManager == null) {
@@ -101,36 +107,27 @@ public LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() {
101107

102108
@Bean(name = "securityManager")
103109
@ConditionalOnWebApplication
104-
public DefaultWebSecurityManager defaultWebSecurityManager(ListenerAuthorizingRealm authorizingRealm) {
110+
public DefaultWebSecurityManager defaultWebSecurityManager(List<AuthorizingRealm> authorizingRealm,
111+
CacheManager cacheManager) {
105112
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
106-
securityManager.setRealm(authorizingRealm);
107-
securityManager.setCacheManager(authorizingRealm.getCacheManager());
113+
securityManager.setRealms(new ArrayList<>(authorizingRealm));
114+
securityManager.setCacheManager(cacheManager);
108115
SecurityUtils.setSecurityManager(securityManager);
109116
return securityManager;
110117
}
111118

112119
@Bean(name = "securityManager")
113120
@ConditionalOnNotWebApplication
114-
public DefaultSecurityManager defaultSecurityManager(ListenerAuthorizingRealm authorizingRealm) {
121+
public DefaultSecurityManager defaultSecurityManager(List<AuthorizingRealm> authorizingRealm,
122+
CacheManager cacheManager) {
115123
DefaultSecurityManager securityManager = new DefaultSecurityManager();
116-
securityManager.setRealm(authorizingRealm);
117-
securityManager.setCacheManager(authorizingRealm.getCacheManager());
124+
securityManager.setRealms(new ArrayList<>(authorizingRealm));
125+
securityManager.setCacheManager(cacheManager);
118126
securityManager.setSessionManager(new DefaultSessionManager());
119127
SecurityUtils.setSecurityManager(securityManager);
120128
return securityManager;
121129
}
122130

123-
// @Bean
124-
// @ConditionalOnMissingBean
125-
// public DefaultAdvisorAutoProxyCreator getDefaultAdvisorAutoProxyCreator() {
126-
// DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
127-
// advisorAutoProxyCreator.setProxyTargetClass(true);
128-
// return advisorAutoProxyCreator;
129-
// }
130-
131-
@Autowired(required = false)
132-
private List<DataAccessHandler> dataAccessHandlers;
133-
134131
@Bean
135132
@ConditionalOnMissingBean
136133
public DefaultDataAccessController defaultDataAccessController() {

0 commit comments

Comments
 (0)