Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nouiWithSpringMVC
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
gechengyang
nouiWithSpringMVC
Commits
976b5e78
Commit
976b5e78
authored
Aug 09, 2020
by
cjh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.修改logout
2.添加文件类型拦截器 3.添加工具类,添加json转换方法
parent
6e8f4638
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
127 additions
and
8 deletions
+127
-8
NoUiContext.java
...n/java/org/sss/presentation/noui/context/NoUiContext.java
+6
-2
FileTypeInterceptor.java
...org/sss/presentation/noui/filter/FileTypeInterceptor.java
+73
-0
CommonUtils.java
...main/java/org/sss/presentation/noui/util/CommonUtils.java
+13
-0
NoUiUtils.java
src/main/java/org/sss/presentation/noui/util/NoUiUtils.java
+18
-5
RedisUtil.java
src/main/java/org/sss/presentation/noui/util/RedisUtil.java
+6
-0
spring-mvc.xml
src/main/resources/spring-mvc.xml
+11
-1
No files found.
src/main/java/org/sss/presentation/noui/context/NoUiContext.java
View file @
976b5e78
...
...
@@ -13,8 +13,12 @@ public class NoUiContext extends AbstractContext {
@Override
public
void
logout
(
DataType
arg0
,
String
arg1
)
{
if
(
redisLoginInfo
!=
null
){
NoUiUtils
.
logout
(
redisLoginInfo
.
getUserId
(),
redisLoginInfo
.
getTerminalType
());
// if(redisLoginInfo != null){
// NoUiUtils.logout(redisLoginInfo.getUserId(),redisLoginInfo.getTerminalType());
// }
if
(
arg0
.
equals
(
DataType
.
USER_NAME
)){
NoUiUtils
.
logout
(
arg1
,
"*"
);
}
}
...
...
src/main/java/org/sss/presentation/noui/filter/FileTypeInterceptor.java
0 → 100644
View file @
976b5e78
package
org
.
sss
.
presentation
.
noui
.
filter
;
import
com.google.gson.Gson
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
;
import
org.sss.presentation.noui.api.response.ErrorCodes
;
import
org.sss.presentation.noui.api.response.Result
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.PrintWriter
;
import
java.util.Iterator
;
import
java.util.Map
;
/**
* 全局文件类型拦截器
*/
public
class
FileTypeInterceptor
extends
HandlerInterceptorAdapter
{
private
String
type_list
;
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
boolean
flag
=
true
;
// 判断是否为文件上传请求
if
(
request
instanceof
MultipartHttpServletRequest
)
{
MultipartHttpServletRequest
multipartRequest
=
(
MultipartHttpServletRequest
)
request
;
Map
<
String
,
MultipartFile
>
files
=
multipartRequest
.
getFileMap
();
Iterator
<
String
>
iterator
=
files
.
keySet
().
iterator
();
//对多部件请求资源进行遍历
while
(
iterator
.
hasNext
())
{
String
formKey
=
(
String
)
iterator
.
next
();
MultipartFile
multipartFile
=
multipartRequest
.
getFile
(
formKey
);
String
filename
=
multipartFile
.
getOriginalFilename
();
//判断是否为限制文件类型
if
(!
checkFile
(
filename
))
{
//限制文件类型,请求转发到原始请求页面,并携带错误提示信息
flag
=
false
;
response
.
setContentType
(
"application/json; charset=utf-8"
);
Result
result
=
new
Result
(
ErrorCodes
.
ERROR
,
"不支持的文件类型!"
,
null
);
PrintWriter
out
=
response
.
getWriter
();
String
json
=
new
Gson
().
toJson
(
result
);
out
.
print
(
json
);
out
.
flush
();
out
.
close
();
}
}
}
return
flag
;
}
/**
* 判断是否为允许的上传文件类型,true表示允许
*/
private
boolean
checkFile
(
String
fileName
)
{
//设置允许上传文件类型
// String suffixList = "jpg,gif,png,ico,bmp,jpeg";
String
suffixList
=
type_list
;
// 获取文件后缀
String
suffix
=
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
)
+
1
,
fileName
.
length
());
if
(
suffixList
.
contains
(
suffix
.
trim
().
toLowerCase
()))
{
return
true
;
}
return
false
;
}
public
void
setType_list
(
String
type_list
)
{
this
.
type_list
=
type_list
;
}
}
\ No newline at end of file
src/main/java/org/sss/presentation/noui/util/CommonUtils.java
0 → 100644
View file @
976b5e78
package
org
.
sss
.
presentation
.
noui
.
util
;
import
com.google.gson.Gson
;
import
java.util.Map
;
public
class
CommonUtils
{
public
static
Map
pasreMap
(
String
jsonstr
)
{
Gson
gson
=
new
Gson
();
return
gson
.
fromJson
(
jsonstr
,
Map
.
class
);
}
}
src/main/java/org/sss/presentation/noui/util/NoUiUtils.java
View file @
976b5e78
...
...
@@ -3,6 +3,7 @@ package org.sss.presentation.noui.util;
import
java.util.ArrayList
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Set
;
import
log.Log
;
import
log.LogFactory
;
...
...
@@ -15,6 +16,7 @@ import org.sss.common.model.IFilter;
import
org.sss.common.model.II18n
;
import
org.sss.common.model.IModuleSession
;
import
org.sss.presentation.noui.api.request.NoUiRequest
;
import
org.sss.presentation.noui.common.Constants
;
import
org.sss.presentation.noui.context.NoUiContext
;
import
org.sss.presentation.noui.context.NoUiPresentation
;
import
org.sss.util.ContainerUtils
;
...
...
@@ -106,10 +108,21 @@ public class NoUiUtils {
}
public
static
Boolean
logout
(
String
userId
,
String
type
){
NoUiRequest
noUiRequest
=
new
NoUiRequest
();
noUiRequest
.
setUserId
(
userId
);
noUiRequest
.
setTerminalType
(
type
);
return
RedisUtil
.
delete
(
StringUtil
.
userUniqueId
(
noUiRequest
));
//模糊匹配删除所有终端登陆key
public
static
void
logout
(
String
userId
,
String
type
){
// NoUiRequest noUiRequest = new NoUiRequest();
// noUiRequest.setUserId(userId);
// noUiRequest.setTerminalType(type);
try
{
if
(
"*"
.
equals
(
type
))
{
Set
<
String
>
keys
=
RedisUtil
.
keys
(
Constants
.
SESSION
+
"."
+
userId
);
for
(
String
str
:
keys
)
{
RedisUtil
.
delete
(
str
);
}
}
}
catch
(
Exception
e
){
log
.
error
(
"logout error:"
,
e
);
}
// return RedisUtil.delete(StringUtil.userUniqueId(noUiRequest));
}
}
src/main/java/org/sss/presentation/noui/util/RedisUtil.java
View file @
976b5e78
package
org
.
sss
.
presentation
.
noui
.
util
;
import
java.util.Properties
;
import
java.util.Set
;
import
java.util.concurrent.TimeUnit
;
import
org.springframework.data.redis.core.RedisTemplate
;
...
...
@@ -49,4 +50,8 @@ public class RedisUtil {
public
static
Boolean
delete
(
String
key
){
return
redisTemplate
.
delete
(
key
);
}
public
static
Set
keys
(
String
key
){
return
redisTemplate
.
keys
(
key
+
"*"
);
}
}
\ No newline at end of file
src/main/resources/spring-mvc.xml
View file @
976b5e78
...
...
@@ -13,6 +13,16 @@
<mvc:annotation-driven
/>
<mvc:default-servlet-handler
/>
<mvc:interceptors>
<mvc:interceptor>
<!-- /**表示所有URL和子URL路径 -->
<mvc:mapping
path=
"/**"
/>
<!-- 配置自定义的文件上传类型限制拦截器 -->
<bean
class=
"org.sss.presentation.noui.filter.FileTypeInterceptor"
>
<property
name=
"type_list"
value=
"jpg,gif,png,ico,bmp,jpeg"
/>
</bean>
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping
path=
"/**/*"
/>
<bean
class=
"org.sss.presentation.noui.filter.Cors"
/>
...
...
@@ -29,7 +39,7 @@
<bean
id=
"multipartResolver"
class=
"org.springframework.web.multipart.commons.CommonsMultipartResolver"
>
<property
name=
"maxUploadSize"
value=
"200000"
/>
<property
name=
"maxInMemorySize"
value=
"200000"
/>
</bean>
</bean>
<!-- 配置自动扫描的包 -->
<context:component-scan
base-package=
"org.sss.presentation.noui.controller"
></context:component-scan>
...
...
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