Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xzxt-shiro
Overview
Overview
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
常超
xzxt-shiro
Commits
2796bc78
Commit
2796bc78
authored
Jul 16, 2019
by
liuyongshuai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改单位的取值
parent
bd3d198b
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
101 additions
and
111 deletions
+101
-111
src/main/java/com/xzxtshiro/shiro/realm/MyRealm.java
+0
-4
src/main/java/com/xzxtshiro/shiro/realm/ShiroRealm.java
+19
-31
src/main/java/com/xzxtshiro/util/ZtreeDataUtil.java
+4
-26
src/main/resources/log4j.properties
+54
-17
xzxt-shiro.iml
+24
-33
No files found.
src/main/java/com/xzxtshiro/shiro/realm/MyRealm.java
View file @
2796bc78
...
...
@@ -64,10 +64,6 @@ public class MyRealm extends AuthorizingRealm {
info
.
setStringPermissions
(
new
HashSet
<>(
resStrList
));
// 以上完成了动态地对用户授权
logger
.
debug
(
"role => "
+
roleSns
);
logger
.
debug
(
"permission => "
+
resStrList
);
logger
.
info
(
"role => "
+
roleSns
);
logger
.
info
(
"permission => "
+
resStrList
);
return
info
;
}
...
...
src/main/java/com/xzxtshiro/shiro/realm/ShiroRealm.java
View file @
2796bc78
package
com
.
xzxtshiro
.
shiro
.
realm
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
com.xzxtshiro.pojo.SysPermissionNew
;
import
com.xzxtshiro.pojo.SysRole
;
import
com.xzxtshiro.pojo.SysUser
;
import
com.xzxtshiro.service.SysUserService
;
import
org.apache.shiro.authc.AuthenticationException
;
import
org.apache.shiro.authc.AuthenticationInfo
;
import
org.apache.shiro.authc.AuthenticationToken
;
import
org.apache.shiro.authc.LockedAccountException
;
import
org.apache.shiro.authc.SimpleAuthenticationInfo
;
import
org.apache.shiro.authc.UnknownAccountException
;
import
org.apache.shiro.authc.UsernamePasswordToken
;
import
org.apache.shiro.authc.*
;
import
org.apache.shiro.authz.AuthorizationInfo
;
import
org.apache.shiro.authz.SimpleAuthorizationInfo
;
import
org.apache.shiro.cache.Cache
;
import
org.apache.shiro.crypto.hash.SimpleHash
;
import
org.apache.shiro.realm.AuthorizingRealm
;
import
org.apache.shiro.subject.PrincipalCollection
;
import
org.apache.shiro.subject.SimplePrincipalCollection
;
...
...
@@ -28,6 +16,10 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
public
class
ShiroRealm
extends
AuthorizingRealm
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ShiroRealm
.
class
);
@Autowired
...
...
@@ -64,7 +56,7 @@ public class ShiroRealm extends AuthorizingRealm {
@Override
protected
AuthorizationInfo
doGetAuthorizationInfo
(
PrincipalCollection
principals
)
{
logger
.
info
(
"--- MyRealm doGetAuthorizationInfo ---"
);
//
logger.info("--- MyRealm doGetAuthorizationInfo ---");
// 获得经过认证的主体信息
SysUser
user
=
(
SysUser
)
principals
.
getPrimaryPrincipal
();
String
userId
=
user
.
getId
();
...
...
@@ -88,55 +80,51 @@ public class ShiroRealm extends AuthorizingRealm {
info
.
setStringPermissions
(
new
HashSet
<>(
resStrList
));
// 以上完成了动态地对用户授权
logger
.
debug
(
"role => "
+
roleSns
);
logger
.
debug
(
"permission => "
+
resStrList
);
logger
.
info
(
"role => "
+
roleSns
);
logger
.
info
(
"permission => "
+
resStrList
);
return
info
;
}
@Override
protected
void
clearCachedAuthenticationInfo
(
PrincipalCollection
principals
)
{
Cache
c
=
getAuthenticationCache
();
logger
.
info
(
"清除【认证】缓存之前"
);
//
logger.info("清除【认证】缓存之前");
for
(
Object
o
:
c
.
keys
())
{
logger
.
info
(
o
+
" , "
+
c
.
get
(
o
));
//
logger.info(o + " , " + c.get(o));
}
super
.
clearCachedAuthenticationInfo
(
principals
);
logger
.
info
(
"调用父类清除【认证】缓存之后"
);
//
logger.info("调用父类清除【认证】缓存之后");
for
(
Object
o
:
c
.
keys
())
{
logger
.
info
(
o
+
" , "
+
c
.
get
(
o
));
//
logger.info(o + " , " + c.get(o));
}
// 添加下面的代码清空【认证】的缓存
SysUser
user
=
(
SysUser
)
principals
.
getPrimaryPrincipal
();
SimplePrincipalCollection
spc
=
new
SimplePrincipalCollection
(
user
.
getUsername
(),
getName
());
super
.
clearCachedAuthenticationInfo
(
spc
);
logger
.
info
(
"添加了代码清除【认证】缓存之后"
);
//
logger.info("添加了代码清除【认证】缓存之后");
int
cacheSize
=
c
.
keys
().
size
();
logger
.
info
(
"【认证】缓存的大小:"
+
c
.
keys
().
size
());
//
logger.info("【认证】缓存的大小:" + c.keys().size());
if
(
cacheSize
==
0
)
{
logger
.
info
(
"说明【认证】缓存被清空了。"
);
//
logger.info("说明【认证】缓存被清空了。");
}
}
@Override
protected
void
clearCachedAuthorizationInfo
(
PrincipalCollection
principals
)
{
logger
.
info
(
"清除【授权】缓存之前"
);
//
logger.info("清除【授权】缓存之前");
Cache
c
=
getAuthorizationCache
();
for
(
Object
o
:
c
.
keys
())
{
logger
.
info
(
o
+
" , "
+
c
.
get
(
o
));
//
logger.info(o + " , " + c.get(o));
}
super
.
clearCachedAuthorizationInfo
(
principals
);
logger
.
info
(
"清除【授权】缓存之后"
);
//
logger.info("清除【授权】缓存之后");
int
cacheSize
=
c
.
keys
().
size
();
logger
.
info
(
"【授权】缓存的大小:"
+
cacheSize
);
//
logger.info("【授权】缓存的大小:" + cacheSize);
for
(
Object
o
:
c
.
keys
())
{
logger
.
info
(
o
+
" , "
+
c
.
get
(
o
));
//
logger.info(o + " , " + c.get(o));
}
if
(
cacheSize
==
0
)
{
logger
.
info
(
"说明【授权】缓存被清空了。"
);
//
logger.info("说明【授权】缓存被清空了。");
}
}
...
...
src/main/java/com/xzxtshiro/util/ZtreeDataUtil.java
View file @
2796bc78
...
...
@@ -48,34 +48,12 @@ public class ZtreeDataUtil {
public
static
void
setUnitZtreeData
(
Model
model
,
SysDictitemService
dictitemService
,
RedisUtils
redisUtils
){
SysUser
user
=
TokenUtil
.
getUser
();
String
unitStr
=
user
.
getUnitcode
();
String
usergrade
=
user
.
getGrade
();
SysDictitem
dictitem
=
new
SysDictitem
();
dictitem
.
setGroupid
(
"
SHIRO
_UNIT"
);
dictitem
.
setGroupid
(
"
CODE
_UNIT"
);
dictitem
.
setCodeStr
(
unitStr
.
substring
(
0
,
2
)+
"%"
);
XzxtRestResult
xzxtRestResult
=
new
XzxtRestResult
();
//从缓存中取内容
try
{
RedisServiceUtil
redisServiceUtil
=
new
RedisServiceUtil
();
xzxtRestResult
=
redisServiceUtil
.
ReadRedisRest
(
unitStr
.
substring
(
0
,
2
)+
"_"
+
dictitem
.
getGroupid
(),
redisUtils
);
String
result
=
""
;
if
(
xzxtRestResult
.
getStatus
()==
202
)
{
result
=
(
String
)
xzxtRestResult
.
getData
();
model
.
addAttribute
(
"unit"
,
result
);
}
else
{
try
{
//先存储
RedisServiceUtil
.
UpdateRedisRest
(
unitStr
.
substring
(
0
,
2
),
dictitem
.
getGroupid
());
//读取
xzxtRestResult
=
redisServiceUtil
.
ReadRedisRest
(
unitStr
.
substring
(
0
,
2
)+
"_"
+
dictitem
.
getGroupid
(),
redisUtils
);
result
=
(
String
)
xzxtRestResult
.
getData
();
model
.
addAttribute
(
"unit"
,
result
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
JSONArray
unit
=
dictitemService
.
selectDictitemByCondition
(
dictitem
);
model
.
addAttribute
(
"unit"
,
unit
);
}
/**
...
...
src/main/resources/log4j.properties
View file @
2796bc78
log4j.rootLogger
=
DEBUG, stdout, R
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Print the date in ISO 8601 format
log4j.appender.stdout.layout.ConversionPattern
=
%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
log4j.appender.R
=
org.apache.log4j.RollingFileAppender
log4j.appender.R.File
=
cc.log
log4j.appender.R.MaxFileSize
=
100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex
=
1
log4j.appender.R.layout
=
org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern
=
%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo
=
WARN
\ No newline at end of file
log4j.rootLogger
=
DEBUG,CONSOLE,A1,R,FILE1,FILE2,FILE3
log4j.addivity.org.apache
=
true
# 应用于控制台
log4j.appender.CONSOLE
=
org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold
=
INFO
log4j.appender.CONSOLE.Target
=
System.out
log4j.appender.CONSOLE.layout
=
org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern
=
[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# 每天新建日志
log4j.appender.A1
=
org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File
=
${catalina.home}/logs/log4j.log
log4j.appender.A1.Threshold
=
DEBUG
log4j.appender.A1.DatePattern
=
'.'yyyy-MM-dd
log4j.appender.A1.layout
=
org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern
=
%d{ABSOLUTE} %5p %c{1}
\:
%L
\:
%m%n
log4j.appender.R
=
org.apache.log4j.DailyRollingFileAppender
#每天输出一个日志文件
log4j.appender.R.DatePattern
=
'_'yyyy-MM-dd'.log'
#昨天的日志文件名Sendmsg+“昨天日期”.log
log4j.appender.R.File
=
${catalina.home}/logs/log4j/debusssssg.log
#日志文件的路径,${catalina.home} 即Tomcat下
log4j.appender.R.layout
=
org.apache.log4j.HTMLLayout
#日志文件输出格式
#log4j.appender.R.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#应用于文件 (调试文件)
log4j.appender.FILE1
=
org.apache.log4j.FileAppender
log4j.appender.FILE1.File
=
${catalina.home}/logs/log4j/debug.log
log4j.appender.FILE1.Threshold
=
DEBUG
log4j.appender.FILE1.Append
=
true
log4j.appender.FILE1.layout
=
org.apache.log4j.PatternLayout
log4j.appender.FILE1.layout.ConversionPattern
=
[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#应用于文件 (INFO文件)
log4j.appender.FILE2
=
org.apache.log4j.FileAppender
log4j.appender.FILE2.File
=
${catalina.home}/logs/log4j/INFO.log
log4j.appender.FILE2.Threshold
=
INFO
log4j.appender.FILE2.Append
=
true
log4j.appender.FILE2.layout
=
org.apache.log4j.PatternLayout
log4j.appender.FILE2.layout.ConversionPattern
=
[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#应用于文件 (错误文件)
log4j.appender.FILE3
=
org.apache.log4j.FileAppender
log4j.appender.FILE3.File
=
${catalina.home}/logs/log4j/error.log
log4j.appender.FILE3.Threshold
=
ERROR
log4j.appender.FILE3.Append
=
false
log4j.appender.FILE3.layout
=
org.apache.log4j.PatternLayout
log4j.appender.FILE3.layout.ConversionPattern
=
[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
\ No newline at end of file
xzxt-shiro.iml
View file @
2796bc78
...
...
@@ -22,6 +22,8 @@
</content>
<orderEntry
type=
"inheritedJdk"
/>
<orderEntry
type=
"sourceFolder"
forTests=
"false"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-web:1.3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-spring:1.3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: joda-time:joda-time:2.5"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-lang3:3.3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-io:commons-io:1.3.2"
level=
"project"
/>
...
...
@@ -39,6 +41,7 @@
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-log4j12:1.6.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.slf4j:slf4j-api:1.6.4"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: log4j:log4j:1.2.16"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: net.coobird:thumbnailator:0.4.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis:mybatis:3.2.8"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.mybatis:mybatis-spring:1.2.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.github.miemiedev:mybatis-paginator:1.2.15"
level=
"project"
/>
...
...
@@ -53,6 +56,16 @@
<SOURCES
/>
</library>
</orderEntry>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-redis:1.7.2.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-keyvalue:1.1.2.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework.data:spring-data-commons:1.12.2.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-tx:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-oxm:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aop:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: aopalliance:aopalliance:1.0"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"RUNTIME"
name=
"Maven: org.slf4j:jcl-over-slf4j:1.7.21"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: redis.clients:jedis:2.5.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-pool2:2.0"
level=
"project"
/>
<orderEntry
type=
"module-library"
>
<library
name=
"Maven: net.sf.json-lib:json-lib:2.1"
>
<CLASSES>
...
...
@@ -63,41 +76,19 @@
</library>
</orderEntry>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:druid:1.0.9"
level=
"project"
/>
<orderEntry
type=
"module-library"
>
<library
name=
"Maven: com.alibaba:jconsole:1.8.0"
>
<CLASSES>
<root
url=
"jar://D:/jdk1.8.0_31/lib/jconsole.jar!/"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
</library>
</orderEntry>
<orderEntry
type=
"module-library"
>
<library
name=
"Maven: com.alibaba:tools:1.8.0"
>
<CLASSES>
<root
url=
"jar://D:/jdk1.8.0_31/lib/tools.jar!/"
/>
</CLASSES>
<JAVADOC
/>
<SOURCES
/>
</library>
</orderEntry>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aop:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-core:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-beans:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-webmvc:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-web:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jdbc:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-tx:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aspects:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context-support:4.3.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-core:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-expression:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-beans:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-webmvc:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-web:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-jdbc:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-aspects:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.springframework:spring-context-support:4.2.6.RELEASE"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.belerweb:pinyin4j:2.5.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: jstl:jstl:1.2"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"PROVIDED"
name=
"Maven: javax.servlet:servlet-api:2.5"
level=
"project"
/>
<orderEntry
type=
"library"
scope=
"PROVIDED"
name=
"Maven: javax.servlet:jsp-api:2.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: redis.clients:jedis:2.7.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.commons:commons-pool2:2.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.solr:solr-solrj:4.10.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.httpcomponents:httpmime:4.3.1"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.zookeeper:zookeeper:3.4.6"
level=
"project"
/>
...
...
@@ -107,8 +98,8 @@
<orderEntry
type=
"library"
name=
"Maven: xml-apis:xml-apis:1.0.b2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-core:1.3.2"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: commons-beanutils:commons-beanutils:1.8.3"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-web:1.
3.2
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-spring:1.
3.2
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-web:1.
2.3
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: org.apache.shiro:shiro-spring:1.
2.3
"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: com.alibaba:fastjson:1.2.39"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.springfox:springfox-swagger2:2.7.0"
level=
"project"
/>
<orderEntry
type=
"library"
name=
"Maven: io.swagger:swagger-annotations:1.5.13"
level=
"project"
/>
...
...
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