zwzw1219 2017-10-15 18:33:49 +08:00
parent 82c0560bad
commit 8590412ed7
24 changed files with 105 additions and 118 deletions

View File

@ -29,19 +29,6 @@ public class ExceptionHandlerAdvice {
return ResponseInfo.builder().code(HttpStatus.BAD_REQUEST.value() + "").message(exception.getMessage()).build();
}
@ExceptionHandler({ UnknownAccountException.class, IncorrectCredentialsException.class })
@ResponseStatus(HttpStatus.UNAUTHORIZED)
public ResponseInfo loginException(Exception exception) {
return ResponseInfo.builder().code(HttpStatus.UNAUTHORIZED.value() + "").message(exception.getMessage())
.build();
}
@ExceptionHandler({ UnauthorizedException.class })
@ResponseStatus(HttpStatus.FORBIDDEN)
public ResponseInfo forbidden(Exception exception) {
return ResponseInfo.builder().code(HttpStatus.FORBIDDEN.value() + "").message(exception.getMessage()).build();
}
@ExceptionHandler({ MissingServletRequestParameterException.class, HttpMessageNotReadableException.class,
UnsatisfiedServletRequestParameterException.class, MethodArgumentTypeMismatchException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST)

View File

@ -9,6 +9,8 @@ import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.model.SysLogs;
import com.boot.security.server.service.SysLogService;
import io.swagger.annotations.ApiOperation;

View File

@ -8,16 +8,16 @@ import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zw.admin.server.annotation.LogAnnotation;
import com.zw.admin.server.utils.ExcelUtil;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.utils.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -59,7 +59,7 @@ public class ExcelController {
@LogAnnotation
@ApiOperation("根据sql导出excel")
@PostMapping
@RequiresPermissions("excel:down")
@PreAuthorize("hasAuthority('excel:down')")
public void downloadExcel(String sql, String fileName, HttpServletResponse response) {
sql = getAndCheckSql(sql);
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
@ -92,7 +92,7 @@ public class ExcelController {
@LogAnnotation
@ApiOperation("根据sql在页面显示结果")
@PostMapping("/show-datas")
@RequiresPermissions("excel:show:datas")
@PreAuthorize("hasAuthority('excel:show:datas')")
public List<Object[]> showData(String sql) {
sql = getAndCheckSql(sql);
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);

View File

@ -3,8 +3,8 @@ package com.boot.security.server.controller;
import java.io.IOException;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -13,17 +13,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.zw.admin.server.annotation.LogAnnotation;
import com.zw.admin.server.dao.FileInfoDao;
import com.zw.admin.server.dto.LayuiFile;
import com.zw.admin.server.dto.LayuiFile.LayuiFileData;
import com.zw.admin.server.model.FileInfo;
import com.zw.admin.server.page.table.PageTableRequest;
import com.zw.admin.server.page.table.PageTableHandler;
import com.zw.admin.server.page.table.PageTableResponse;
import com.zw.admin.server.page.table.PageTableHandler.CountHandler;
import com.zw.admin.server.page.table.PageTableHandler.ListHandler;
import com.zw.admin.server.service.FileService;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.FileInfoDao;
import com.boot.security.server.dto.LayuiFile;
import com.boot.security.server.dto.LayuiFile.LayuiFileData;
import com.boot.security.server.model.FileInfo;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.page.table.PageTableResponse;
import com.boot.security.server.service.FileService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -71,7 +71,7 @@ public class FileController {
@GetMapping
@ApiOperation(value = "文件查询")
@RequiresPermissions("sys:file:query")
@PreAuthorize("hasAuthority('sys:file:query')")
public PageTableResponse<FileInfo> listFiles(PageTableRequest request) {
return PageTableHandler.<FileInfo> builder().countHandler(new CountHandler() {
@ -92,7 +92,7 @@ public class FileController {
@LogAnnotation
@DeleteMapping("/{id}")
@ApiOperation(value = "文件删除")
@RequiresPermissions("sys:file:del")
@PreAuthorize("hasAuthority('sys:file:del')")
public void delete(@PathVariable String id) {
fileService.delete(id);
}

View File

@ -2,19 +2,19 @@ package com.boot.security.server.controller;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zw.admin.server.annotation.LogAnnotation;
import com.zw.admin.server.dto.BeanField;
import com.zw.admin.server.dto.GenerateDetail;
import com.zw.admin.server.dto.GenerateInput;
import com.zw.admin.server.service.GenerateService;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dto.BeanField;
import com.boot.security.server.dto.GenerateDetail;
import com.boot.security.server.dto.GenerateInput;
import com.boot.security.server.service.GenerateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -35,7 +35,7 @@ public class GenerateController {
@ApiOperation("根据表名显示表信息")
@GetMapping(params = { "tableName" })
@RequiresPermissions("generate:edit")
@PreAuthorize("hasAuthority('generate:edit')")
public GenerateDetail generateByTableName(String tableName) {
GenerateDetail detail = new GenerateDetail();
detail.setBeanName(generateService.upperFirstChar(tableName));
@ -48,7 +48,7 @@ public class GenerateController {
@LogAnnotation
@ApiOperation("生成代码")
@PostMapping
@RequiresPermissions("generate:edit")
@PreAuthorize("hasAuthority('generate:edit')")
public void save(@RequestBody GenerateInput input) {
generateService.saveCode(input);
}

View File

@ -7,12 +7,12 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.quartz.CronExpression;
import org.quartz.SchedulerException;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@ -23,15 +23,15 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zw.admin.server.annotation.LogAnnotation;
import com.zw.admin.server.dao.JobDao;
import com.zw.admin.server.model.JobModel;
import com.zw.admin.server.page.table.PageTableHandler;
import com.zw.admin.server.page.table.PageTableHandler.CountHandler;
import com.zw.admin.server.page.table.PageTableHandler.ListHandler;
import com.zw.admin.server.page.table.PageTableRequest;
import com.zw.admin.server.page.table.PageTableResponse;
import com.zw.admin.server.service.JobService;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.JobDao;
import com.boot.security.server.model.JobModel;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.page.table.PageTableResponse;
import com.boot.security.server.service.JobService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -49,7 +49,7 @@ public class JobController {
@LogAnnotation
@ApiOperation("添加定时任务")
@PostMapping
@RequiresPermissions("job:add")
@PreAuthorize("hasAuthority('job:add')")
public void add(@RequestBody JobModel jobModel) {
JobModel model = jobDao.getByName(jobModel.getJobName());
if (model != null) {
@ -63,7 +63,7 @@ public class JobController {
@LogAnnotation
@ApiOperation("修改定时任务")
@PutMapping
@RequiresPermissions("job:add")
@PreAuthorize("hasAuthority('job:add')")
public void update(@RequestBody JobModel jobModel) {
jobModel.setStatus(1);
jobService.saveJob(jobModel);
@ -72,21 +72,21 @@ public class JobController {
@LogAnnotation
@ApiOperation("删除定时任务")
@DeleteMapping("/{id}")
@RequiresPermissions("job:del")
@PreAuthorize("hasAuthority('job:del')")
public void delete(@PathVariable Long id) throws SchedulerException {
jobService.deleteJob(id);
}
@ApiOperation("根据id获取定时任务")
@GetMapping("/{id}")
@RequiresPermissions("job:query")
@PreAuthorize("hasAuthority('job:query')")
public JobModel getById(@PathVariable Long id) {
return jobDao.getById(id);
}
@GetMapping
@ApiOperation(value = "定时任务列表")
@RequiresPermissions("job:query")
@PreAuthorize("hasAuthority('job:query')")
public PageTableResponse<JobModel> list(PageTableRequest request) {
return PageTableHandler.<JobModel> builder().countHandler(new CountHandler() {

View File

@ -2,9 +2,8 @@ package com.boot.security.server.controller;
import java.util.List;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -13,17 +12,17 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.RoleDao;
import com.boot.security.server.dto.RoleDto;
import com.boot.security.server.model.Role;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.page.table.PageTableResponse;
import com.boot.security.server.service.RoleService;
import com.google.common.collect.Maps;
import com.zw.admin.server.annotation.LogAnnotation;
import com.zw.admin.server.dao.RoleDao;
import com.zw.admin.server.dto.RoleDto;
import com.zw.admin.server.model.Role;
import com.zw.admin.server.page.table.PageTableRequest;
import com.zw.admin.server.page.table.PageTableHandler;
import com.zw.admin.server.page.table.PageTableResponse;
import com.zw.admin.server.page.table.PageTableHandler.CountHandler;
import com.zw.admin.server.page.table.PageTableHandler.ListHandler;
import com.zw.admin.server.service.RoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -81,7 +80,7 @@ public class RoleController {
@GetMapping("/all")
@ApiOperation(value = "所有角色")
@RequiresPermissions(value = { "sys:user:query", "sys:role:query" }, logical = Logical.OR)
@PreAuthorize("hasAnyAuthority('sys:user:query','sys:role:query')")
public List<Role> roles() {
return roleDao.list(Maps.newHashMap(), null, null);
}

View File

@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.zw.admin.server.model.FileInfo;
import com.boot.security.server.model.FileInfo;
@Mapper
public interface FileInfoDao {

View File

@ -9,7 +9,7 @@ import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.zw.admin.server.model.JobModel;
import com.boot.security.server.model.JobModel;
@Mapper
public interface JobDao {

View File

@ -9,8 +9,8 @@ import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.zw.admin.server.model.Mail;
import com.zw.admin.server.model.MailTo;
import com.boot.security.server.model.Mail;
import com.boot.security.server.model.MailTo;
@Mapper
public interface MailDao {

View File

@ -11,9 +11,9 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.zw.admin.server.dto.NoticeReadVO;
import com.zw.admin.server.model.Notice;
import com.zw.admin.server.model.User;
import com.boot.security.server.dto.NoticeReadVO;
import com.boot.security.server.model.Notice;
import com.boot.security.server.model.SysUser;
@Mapper
public interface NoticeDao {
@ -39,7 +39,7 @@ public interface NoticeDao {
@Insert("insert ignore into t_notice_read(noticeId, userId, createTime) values(#{noticeId}, #{userId}, now())")
int saveReadRecord(@Param("noticeId") Long noticeId, @Param("userId") Long userId);
List<User> listReadUsers(Long noticeId);
List<SysUser> listReadUsers(Long noticeId);
@Select("select count(1) from t_notice t left join t_notice_read r on r.noticeId = t.id and r.userId = #{userId} where t.status = 1 and r.userId is null")
int countUnread(Long userId);

View File

@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.zw.admin.server.model.Permission;
import com.boot.security.server.model.Permission;
@Mapper
public interface PermissionDao {

View File

@ -11,7 +11,7 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.zw.admin.server.model.Role;
import com.boot.security.server.model.Role;
@Mapper
public interface RoleDao {

View File

@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.zw.admin.server.model.SysLogs;
import com.boot.security.server.model.SysLogs;
@Mapper
public interface SysLogsDao {

View File

@ -11,27 +11,27 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.zw.admin.server.model.User;
import com.boot.security.server.model.SysUser;
@Mapper
public interface UserDao {
@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("insert into sys_user(username, password, salt, nickname, headImgUrl, phone, telephone, email, birthday, sex, status, createTime, updateTime) values(#{username}, #{password}, #{salt}, #{nickname}, #{headImgUrl}, #{phone}, #{telephone}, #{email}, #{birthday}, #{sex}, #{status}, now(), now())")
int save(User user);
int save(SysUser user);
@Select("select * from sys_user t where t.id = #{id}")
User getById(Long id);
SysUser getById(Long id);
@Select("select * from sys_user t where t.username = #{username}")
User getUser(String username);
SysUser getUser(String username);
@Update("update sys_user t set t.password = #{password} where t.id = #{id}")
int changePassword(@Param("id") Long id, @Param("password") String password);
Integer count(@Param("params") Map<String, Object> params);
List<User> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
List<SysUser> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit);
@Delete("delete from sys_role_user where userId = #{userId}")
@ -39,5 +39,5 @@ public interface UserDao {
int saveUserRoles(@Param("userId") Long userId, @Param("roleIds") List<Long> roleIds);
int update(User user);
int update(SysUser user);
}

View File

@ -7,6 +7,7 @@ import org.springframework.context.ApplicationContext;
import org.springframework.scheduling.quartz.QuartzJobBean;
import com.boot.security.server.config.JobConfig;
import com.boot.security.server.service.JobService;
public class SpringBeanJob extends QuartzJobBean {

View File

@ -1,17 +1,15 @@
package com.boot.security.server.service;
import com.zw.admin.server.dto.UserDto;
import com.zw.admin.server.model.User;
import com.boot.security.server.dto.UserDto;
import com.boot.security.server.model.SysUser;
public interface UserService {
User saveUser(UserDto userDto);
User updateUser(UserDto userDto);
SysUser saveUser(UserDto userDto);
String passwordEncoder(String credentials, String salt);
SysUser updateUser(UserDto userDto);
User getUser(String username);
SysUser getUser(String username);
void changePassword(String username, String oldPassword, String newPassword);

View File

@ -7,10 +7,10 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.zw.admin.server.dao.FileInfoDao;
import com.zw.admin.server.model.FileInfo;
import com.zw.admin.server.service.FileService;
import com.zw.admin.server.utils.FileUtil;
import com.boot.security.server.dao.FileInfoDao;
import com.boot.security.server.model.FileInfo;
import com.boot.security.server.service.FileService;
import com.boot.security.server.utils.FileUtil;
import lombok.extern.slf4j.Slf4j;

View File

@ -13,12 +13,12 @@ import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import com.boot.security.server.dto.BeanField;
import com.boot.security.server.dto.GenerateInput;
import com.boot.security.server.service.GenerateService;
import com.boot.security.server.utils.StrUtil;
import com.boot.security.server.utils.TemplateUtil;
import com.google.common.collect.Maps;
import com.zw.admin.server.dto.BeanField;
import com.zw.admin.server.dto.GenerateInput;
import com.zw.admin.server.service.GenerateService;
import com.zw.admin.server.utils.StrUtil;
import com.zw.admin.server.utils.TemplateUtil;
@Service
public class GenerateServiceImpl implements GenerateService {

View File

@ -20,10 +20,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import com.zw.admin.server.dao.JobDao;
import com.zw.admin.server.job.SpringBeanJob;
import com.zw.admin.server.model.JobModel;
import com.zw.admin.server.service.JobService;
import com.boot.security.server.dao.JobDao;
import com.boot.security.server.job.SpringBeanJob;
import com.boot.security.server.model.JobModel;
import com.boot.security.server.service.JobService;
import lombok.extern.slf4j.Slf4j;

View File

@ -6,11 +6,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.zw.admin.server.dao.MailDao;
import com.zw.admin.server.model.Mail;
import com.zw.admin.server.service.MailService;
import com.zw.admin.server.service.SendMailSevice;
import com.zw.admin.server.utils.UserUtil;
import com.boot.security.server.dao.MailDao;
import com.boot.security.server.model.Mail;
import com.boot.security.server.service.MailService;
import com.boot.security.server.service.SendMailSevice;
import com.boot.security.server.utils.UserUtil;
import lombok.extern.slf4j.Slf4j;

View File

@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.zw.admin.server.dao.PermissionDao;
import com.zw.admin.server.model.Permission;
import com.zw.admin.server.service.PermissionService;
import com.boot.security.server.dao.PermissionDao;
import com.boot.security.server.model.Permission;
import com.boot.security.server.service.PermissionService;
import lombok.extern.slf4j.Slf4j;

View File

@ -7,10 +7,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import com.zw.admin.server.dao.RoleDao;
import com.zw.admin.server.dto.RoleDto;
import com.zw.admin.server.model.Role;
import com.zw.admin.server.service.RoleService;
import com.boot.security.server.dao.RoleDao;
import com.boot.security.server.dto.RoleDto;
import com.boot.security.server.model.Role;
import com.boot.security.server.service.RoleService;
import lombok.extern.slf4j.Slf4j;

View File

@ -11,7 +11,7 @@ import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import com.zw.admin.server.service.SendMailSevice;
import com.boot.security.server.service.SendMailSevice;
@Service
public class SendMailSeviceImpl implements SendMailSevice {