Browse Source

修复图片上传失败的问题

master
xie.bx 3 years ago
parent
commit
f3524cc72d
  1. 2
      im-platform/src/main/java/com/bx/implatform/config/MvcConfig.java
  2. 49
      im-platform/src/main/java/com/bx/implatform/service/impl/SecurityUserDetailsServiceImpl.java
  3. 20
      im-ui/src/components/common/FileUpload.vue
  4. 4
      im-ui/src/store/friendStore.js

2
im-platform/src/main/java/com/bx/implatform/config/MvcConfig.java

@ -17,7 +17,7 @@ public class MvcConfig implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authInterceptor()) registry.addInterceptor(authInterceptor())
.addPathPatterns("/**") .addPathPatterns("/**")
.excludePathPatterns( "/image/upload","/login","/logout","/register","/refreshToken", .excludePathPatterns("/login","/logout","/register","/refreshToken",
"/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**"); "/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**");
} }

49
im-platform/src/main/java/com/bx/implatform/service/impl/SecurityUserDetailsServiceImpl.java

@ -1,49 +0,0 @@
package com.bx.implatform.service.impl;
import com.alibaba.fastjson.JSON;
import com.bx.implatform.entity.User;
import com.bx.implatform.service.IUserService;
import com.bx.implatform.session.UserSession;
import com.bx.implatform.util.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class SecurityUserDetailsServiceImpl implements UserDetailsService {
@Autowired
private IUserService userService;
/**
* 加载用户数据用户登录时由spring security调用
*
* @param username 用户名
* @throws UsernameNotFoundException 用户不存在时抛出
* @return
*/
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userService.findUserByName(username);
if(user == null) {
throw new UsernameNotFoundException("用户不存在");
}
//定义权限列表.
List<GrantedAuthority> authorities = new ArrayList();
// 用户可以访问的资源名称(或者说用户所拥有的权限) 注意:必须"ROLE_"开头
authorities.add(new SimpleGrantedAuthority("ROLE_XX"));
UserSession session = BeanUtils.copyProperties(user,UserSession.class);
String strJson = JSON.toJSONString(session);
UserDetails userDetails = new org.springframework.security.core.userdetails.User(strJson,user.getPassword(),authorities);
return userDetails;
}
}

20
im-ui/src/components/common/FileUpload.vue

@ -1,11 +1,6 @@
<template> <template>
<el-upload :action="action" <el-upload :action="action" :headers="uploadHeaders" :accept="fileTypes==null?'':fileTypes.join(',')"
:accept="fileTypes==null?'':fileTypes.join(',')" :show-file-list="false" :on-success="handleSuccess" :on-error="handleError" :disabled="disabled" :before-upload="beforeUpload">
:show-file-list="false"
:on-success="handleSuccess"
:on-error="handleError"
:disabled="disabled"
:before-upload="beforeUpload">
<slot></slot> <slot></slot>
</el-upload> </el-upload>
</template> </template>
@ -15,7 +10,8 @@
name: "fileUpload", name: "fileUpload",
data() { data() {
return { return {
loading: null loading: null,
uploadHeaders: {"accessToken":sessionStorage.getItem('accessToken')}
} }
}, },
props: { props: {
@ -45,17 +41,17 @@
this.loading && this.loading.close(); this.loading && this.loading.close();
if (res.code == 200) { if (res.code == 200) {
this.$emit("success", res, file); this.$emit("success", res, file);
}else{ } else {
this.$message.error(res.message); this.$message.error(res.message);
this.$emit("fail", res, file); this.$emit("fail", res, file);
} }
}, },
handleError(err,file){ handleError(err, file) {
this.$emit("fail", err, file); this.$emit("fail", err, file);
}, },
beforeUpload(file) { beforeUpload(file) {
// //
if(this.fileTypes && this.fileTypes.length > 0){ if (this.fileTypes && this.fileTypes.length > 0) {
let fileType = file.type; let fileType = file.type;
let t = this.fileTypes.find((t) => t.toLowerCase() === fileType); let t = this.fileTypes.find((t) => t.toLowerCase() === fileType);
if (t === undefined) { if (t === undefined) {
@ -80,6 +76,8 @@
this.$emit("before", file); this.$emit("before", file);
return true; return true;
} }
}, },
computed: { computed: {
fileSizeStr() { fileSizeStr() {

4
im-ui/src/store/friendStore.js

@ -25,7 +25,9 @@ export default {
state.friends.forEach((f,index)=>{ state.friends.forEach((f,index)=>{
if(f.id==friend.id){ if(f.id==friend.id){
// 拷贝属性 // 拷贝属性
let online = state.friends[index].online;
Object.assign(state.friends[index], friend); Object.assign(state.friends[index], friend);
state.friends[index].online =online;
} }
}) })
}, },
@ -43,6 +45,7 @@ export default {
}, },
refreshOnlineStatus(state){ refreshOnlineStatus(state){
let userIds = []; let userIds = [];
console.log("refreshOnlineStatus")
if(state.friends.length ==0){ if(state.friends.length ==0){
return; return;
} }
@ -62,6 +65,7 @@ export default {
},30000) },30000)
}, },
setOnlineStatus(state,onlineIds){ setOnlineStatus(state,onlineIds){
console.log("setOnlineStatus")
state.friends.forEach((f)=>{ state.friends.forEach((f)=>{
let onlineFriend = onlineIds.find((id)=> f.id==id); let onlineFriend = onlineIds.find((id)=> f.id==id);
f.online = onlineFriend != undefined; f.online = onlineFriend != undefined;

Loading…
Cancel
Save