Skip to content

Commit

Permalink
Merge pull request #3 from stick-i/stick
Browse files Browse the repository at this point in the history
Stick
  • Loading branch information
stick-i authored May 14, 2022
2 parents 86e0d46 + 9dee50e commit ebbb746
Show file tree
Hide file tree
Showing 78 changed files with 3,049 additions and 690 deletions.
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package cn.sticki.blog.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {

@Bean // 配置分页
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); // 配置分页助手
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor()); // 阻止恶意的全表更新删除
return interceptor;
}

Expand Down
12 changes: 12 additions & 0 deletions blog_main/src/main/java/cn/sticki/blog/config/ResourcePath.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ public class ResourcePath {

public static String defaultAvatar;

public static String blogImage;

public static String blogImageUrlBase;

public void setAvatar(String avatar) {
ResourcePath.avatar = avatar;
}
Expand All @@ -25,4 +29,12 @@ public void setDefaultAvatar(String defaultAvatar) {
ResourcePath.defaultAvatar = defaultAvatar;
}

public void setBlogImage(String blogImage) {
ResourcePath.blogImage = blogImage;
}

public void setBlogImageUrlBase(String blogImageUrlBase) {
ResourcePath.blogImageUrlBase = blogImageUrlBase;
}

}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package cn.sticki.blog.config;

import cn.sticki.blog.security.filter.AuthenticationTokenFilter;
import cn.sticki.blog.security.filter.IPLimitFilter;
import cn.sticki.blog.security.handler.AuthAccessDeniedHandler;
import cn.sticki.blog.security.handler.AuthenticationEntryPointHandler;
import cn.sticki.blog.security.handler.LoginFailureHandler;
import cn.sticki.blog.security.handler.LoginSuccessHandler;
import cn.sticki.blog.util.ResponseUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
Expand Down Expand Up @@ -57,12 +57,15 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private AuthenticationEntryPointHandler authenticationEntryPointHandler;

/**
* 自定义登录逻辑验证器
*/
// /**
// * 自定义登录逻辑验证器
// */
// @Autowired
// private UserAuthenticationProvider userAuthenticationProvider;

/**
* 用户认证过滤器
*/
@Autowired
private AuthenticationTokenFilter authenticationTokenFilter;
//
Expand All @@ -73,7 +76,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
// private AccessDeniedHandler accessDeniedHandler;

@Autowired
private ResponseUtils responseUtils;
private IPLimitFilter ipLimitFilter;

// @Resource
// private AuthenticationFailureHandlerAdvice authenticationFailureHandlerAdvice;
Expand Down Expand Up @@ -114,6 +117,8 @@ protected void configure(HttpSecurity http) throws Exception {
http.headers().cacheControl();
// 添加JWT过滤器
http.addFilterAt(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
// 添加ip限制过滤器
http.addFilterBefore(ipLimitFilter, UsernamePasswordAuthenticationFilter.class);
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

@Slf4j
@RestController
@RequestMapping("/blog")
@RequestMapping("/action/blog")
public class BlogActionController {

@Resource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,4 +140,14 @@ public RestTemplate completelyDeleteBlog(@NotNull Integer id) throws UserIllegal
return new RestTemplate(blogConsoleService.remove(wrapper));
}

@PostMapping("/img")
public RestTemplate uploadBlogImg(@NotNull MultipartFile file) {
log.debug("uploadBlogImg, fileName->{}, userId->{}", file.getOriginalFilename(), authenticationFacade.getUser().getId());
if (fileUtils.isNotEmpty(file)) {
fileUtils.checkFile(file, 1024 * 1024L, FileType.JPEG, FileType.PNG);
}
String url = blogConsoleService.uploadImage(file);
return new RestTemplate(url);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
import cn.sticki.blog.pojo.domain.BlogBasic;
import cn.sticki.blog.pojo.domain.User;
import cn.sticki.blog.pojo.dto.UserBlogActionStatusDTO;
import cn.sticki.blog.pojo.vo.*;
import cn.sticki.blog.pojo.vo.BlogListVO;
import cn.sticki.blog.pojo.vo.HotBlogListVO;
import cn.sticki.blog.pojo.vo.RestTemplate;
import cn.sticki.blog.security.AuthenticationFacade;
import cn.sticki.blog.service.BlogActionService;
import cn.sticki.blog.service.BlogBasicService;
Expand Down Expand Up @@ -70,9 +72,7 @@ public RestTemplate recommendBlog(@RequestParam(defaultValue = "1") int page) {
public RestTemplate searchBlog(@NotNull String key, @RequestParam(defaultValue = "1") int page) {
log.debug("searchBlog,search->{},page->{}", key, page);
BlogListVO blogListVO = blogBasicService.searchBlog(key, page, pageSize);
IListVO<BlogBasic> blogList = new ListVO<>();
blogList.setRecords(blogListVO.getRecords());
return new RestTemplate(blogList);
return new RestTemplate(blogListVO);
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package cn.sticki.blog.controller;

import cn.sticki.blog.exception.userException.UserArgumentException;
import cn.sticki.blog.pojo.domain.Comment;
import cn.sticki.blog.pojo.domain.User;
import cn.sticki.blog.pojo.vo.CommentListVO;
import cn.sticki.blog.pojo.vo.RestTemplate;
import cn.sticki.blog.security.AuthenticationFacade;
import cn.sticki.blog.service.CommentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@Slf4j
@RestController
@RequestMapping("/comment")
public class CommentController {

@Resource
private AuthenticationFacade authenticationFacade;

@Resource
private CommentService commentService;

/**
* 新增评论
*
* @param comment 必须传入被评论的博客id和评论内容
*/
@PostMapping
public RestTemplate createComment(@RequestBody Comment comment) {
if (comment.getBlogId() == null || comment.getContent() == null)
throw new UserArgumentException();
User user = authenticationFacade.getUser();
comment.setUserId(user.getId());
commentService.create(comment);
return new RestTemplate();
}

/**
* 删除评论
*
* @param id 评论id
*/
@DeleteMapping
public RestTemplate deleteComment(@RequestParam Integer id) {
User user = authenticationFacade.getUser();
commentService.checkAndDelete(user.getId(), id);
return new RestTemplate();
}

/**
* 获取评论列表
*
* @param blogId 评论的博客id
*/
@GetMapping("/list")
public RestTemplate getCommentList(@RequestParam Integer blogId, @RequestParam Integer page, @RequestParam(defaultValue = "3") Integer pageSize) {
CommentListVO commentListVO = commentService.getList(blogId, page, pageSize);
return new RestTemplate(commentListVO);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public RestTemplate sendMailVerify(String mail) throws Exception {
registerService.sendMailVerify(mail);
return new RestTemplate(true);
}
return new RestTemplate(false, "发送频繁");
return new RestTemplate(400, "发送频繁");
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package cn.sticki.blog.controller;

import cn.sticki.blog.config.ResourcePath;
import cn.sticki.blog.exception.systemException.MinioException;
import cn.sticki.blog.util.OssUtils;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Controller;
Expand All @@ -13,7 +13,6 @@
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Slf4j
@Controller
Expand All @@ -30,26 +29,26 @@ public class ResourceController {
* @param response 响应头
*/
@GetMapping("/avatar/{file}")
public void getAvatar(@PathVariable @NotNull String file, @NotNull HttpServletResponse response)
throws IOException, MinioException {
log.debug("getAvatar, fileName->{}", file);
response.setContentType("image/jpeg");
try (
ServletOutputStream outputStream = response.getOutputStream()
) {
ossUtils.download(ResourcePath.avatar + file, outputStream);
}
public void getAvatar(@PathVariable @NotNull String file, @NotNull HttpServletResponse response) {
getImg(ResourcePath.avatar + file, response);
}

@GetMapping("/blog-cover/{file}")
public void getBlogCover(@PathVariable @NotNull String file, @NotNull HttpServletResponse response)
throws IOException, MinioException {
log.debug("getBlogCover, fileName->{}", file);
public void getBlogCover(@PathVariable @NotNull String file, @NotNull HttpServletResponse response) {
getImg(ResourcePath.blogCoverImage + file, response);
}

@GetMapping("/blog-img/{file}")
public void getBlogImg(@PathVariable @NotNull String file, @NotNull HttpServletResponse response) {
getImg(ResourcePath.blogImage + file, response);
}

@SneakyThrows
private void getImg(String filePath, HttpServletResponse response) {
log.debug("getImg, fileName->{}", filePath);
response.setContentType("image/jpeg");
try (
ServletOutputStream outputStream = response.getOutputStream()
) {
ossUtils.download(ResourcePath.blogCoverImage + file, outputStream);
try (ServletOutputStream outputStream = response.getOutputStream()) {
ossUtils.download(filePath, outputStream);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ public class UserController {
public RestTemplate getByUsername(String username) {
User user = authenticationFacade.getUser();
User getUser = null;
if (username == null && user != null) {
if ((username == null || username.length() == 0) && user != null) {
getUser = user;
log.debug("getByUsername, sessionUser ,user->{}", getUser.getClass());
} else if (username != null) {
} else if (username != null && username.length() != 0) {
getUser = userService.getByUsername(username);
log.debug("getByUsername, userService.getByUsername ,user->{}", getUser);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package cn.sticki.blog.controller;

import cn.sticki.blog.pojo.domain.FansBasic;
import cn.sticki.blog.pojo.domain.FollowBasic;
import cn.sticki.blog.pojo.domain.User;
import cn.sticki.blog.pojo.vo.ListVO;
import cn.sticki.blog.pojo.vo.RestTemplate;
import cn.sticki.blog.security.AuthenticationFacade;
import cn.sticki.blog.service.UserFollowService;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@Slf4j
@RestController
@RequestMapping("/user")
public class UserFollowController {

// 默认每页20条
private final int pageSize = 20;

@Resource
private AuthenticationFacade authenticationFacade;

@Resource
private UserFollowService userFollowService;

@GetMapping("/follow")
public RestTemplate getFollowList(@RequestParam(defaultValue = "1") int page) {
User user = authenticationFacade.getUser();
ListVO<FollowBasic> listVO = userFollowService.getFollowList(user.getId(), page, pageSize);
return new RestTemplate(listVO);
}

@GetMapping("/fans")
public RestTemplate getFansList(@RequestParam(defaultValue = "1") int page) {
User user = authenticationFacade.getUser();
ListVO<FansBasic> listVO = userFollowService.getFansList(user.getId(), page, pageSize);
return new RestTemplate(listVO);
}

@PostMapping("/follow")
public RestTemplate doFollow(@NotNull Integer followId) {
User user = authenticationFacade.getUser();
try {
boolean result = userFollowService.follow(user.getId(), followId);
return new RestTemplate(200, "success", result, true);
} catch (Exception e) {
return new RestTemplate(200, "fail", null, false);
}
}

}
Loading

0 comments on commit ebbb746

Please sign in to comment.