This commit is contained in:
xiangwbs
2017-11-05 09:18:01 +08:00
parent da16fc16b8
commit 3e8bdb04a0
46 changed files with 282 additions and 303 deletions
@@ -2,11 +2,15 @@ package com.xwbing.constant;
/**
* 说明: 公共常量
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
public class CommonConstant {
/**
* 验证码
*/
public static final String KEY_CAPTCHA = "captchaCode";
/**
* 顶级
*/
@@ -5,7 +5,7 @@ import java.util.stream.Collectors;
/**
* 说明: 公共枚举
* 项目名称: zdemo
* 项目名称: boot-module-demo
* 创建日期: 2016年12月9日 上午9:50:30
* 作者: xiangwb
*/
@@ -1,4 +1,4 @@
package com.xwbing.domain;
package com.xwbing.entity;
import lombok.Data;
@@ -10,7 +10,7 @@ import java.util.Date;
/**
* 说明: 基础类
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -27,7 +27,4 @@ public class BaseEntity implements Serializable {
private Date createTime;
@Column(name = "modified_time")
private Date modifiedTime;
@Column(name = "is_deleted")
private String isDeleted;
private Integer sort;
}
@@ -1,17 +1,13 @@
package com.xwbing.domain;
package com.xwbing.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.validation.constraints.Pattern;
/**
* 说明: 权限
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -24,21 +20,14 @@ public class SysAuthority extends BaseEntity {
/**
* 名称
*/
@NotBlank(message = "name不能为空")
@Length(min = 1, max = 10, message = "name长度为1-10")
private String name;
/**
* 编号
*/
@NotBlank(message = "编号不能为空")
@Length(min = 6, max = 50, message = "编号长度为6-50")
private String code;
/**
* 是否启用
*/
@NotBlank(message = "是否启用不能为空")
@Pattern(regexp = "Y|N",message = "是否启用格式应为Y|N")
@Column(name = "is_enable")
private String isEnable;
/**
* url地址
@@ -47,9 +36,6 @@ public class SysAuthority extends BaseEntity {
/**
* 父ID
*/
@NotBlank(message = "父ID不能为空")
@Length(min = 6, max = 50, message = "父ID长度为6-50")
@Column(name = "parent_id")
private String parentId;
/**
* 类型 2按钮 1菜单
@@ -1,4 +1,4 @@
package com.xwbing.domain;
package com.xwbing.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -11,7 +11,7 @@ import javax.validation.constraints.Pattern;
/**
* 说明: 系统配置
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -36,7 +36,7 @@ public class SysConfig extends BaseEntity {
* 是否启用
*/
@NotBlank(message = "是否启用不能为空")
@Pattern(regexp = "Y|N",message = "是否启用格式为Y|N")
@Pattern(regexp = "[Y|N]",message = "是否启用格式为Y|N")
@Column(name = "is_enable")
private String isEnable;
/**
@@ -45,5 +45,4 @@ public class SysConfig extends BaseEntity {
@NotBlank(message = "配置项的name不能为空")
@Length(min = 1, max = 10, message = "value长度为1-10")
private String name;
}
@@ -1,17 +1,14 @@
package com.xwbing.domain;
package com.xwbing.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.validation.constraints.Pattern;
/**
* 说明: 角色
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -24,19 +21,14 @@ public class SysRole extends BaseEntity {
/**
* 角色名称
*/
@NotBlank(message = "角色名称不能为空")
private String name;
/**
* 角色编码
*/
@NotBlank(message = "角色编码不能为空")
@Length(min = 6, max = 50, message = "长度为6-20")
private String code;
/**
* 是否启用
*/
@NotBlank(message = "是否启用不能为空")
@Pattern(regexp = "Y|N",message = "是否启用格式应为Y|N")
@Column(name = "is_enable")
private String isEnable;
/**
@@ -1,15 +1,14 @@
package com.xwbing.domain;
package com.xwbing.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.NotBlank;
import javax.persistence.Column;
import javax.persistence.Entity;
/**
* 说明: 角色权限关系
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -22,13 +21,11 @@ public class SysRoleAuthority extends BaseEntity {
/**
* 角色主键
*/
@NotBlank(message = "角色主键不能为空")
@Column(name = "role_id")
private String roleId;
/**
* 权限主键
*/
@NotBlank(message = "权限主键不能为空")
@Column(name = "authority_id")
private String authorityId;
}
@@ -1,4 +1,4 @@
package com.xwbing.domain;
package com.xwbing.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -9,11 +9,10 @@ import org.hibernate.validator.constraints.NotBlank;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.validation.constraints.Pattern;
import java.util.Date;
/**
* 说明: 用户
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -45,6 +44,8 @@ public class SysUser extends BaseEntity {
/**
* 姓名
*/
@NotBlank(message = "姓名不能为空")
@Length(min = 1, max = 20, message = "长度为1-5")
private String name;
/**
* 盐值
@@ -54,16 +55,6 @@ public class SysUser extends BaseEntity {
* 密码
*/
private String password;
/**
* 最后登录IP
*/
@Column(name = "last_login_ip")
private String lastLoginIp;
/**
* 最后登录时间
*/
@Column(name = "last_login_time")
private Date lastLoginTime;
/**
* 邮箱
*/
@@ -75,9 +66,4 @@ public class SysUser extends BaseEntity {
@NotBlank
@Pattern(regexp = "[01]", message = "性别格式为0|1,0代表女,1代表男")
private String sex;
/**
* 是否管理员
*/
@Column(name = "is_admin")
private String isAdmin;
}
@@ -1,15 +1,14 @@
package com.xwbing.domain;
package com.xwbing.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.NotBlank;
import javax.persistence.Column;
import javax.persistence.Entity;
/**
* 说明: 用户角色关系
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -22,13 +21,11 @@ public class SysUserRole extends BaseEntity {
/**
* 用户主键
*/
@NotBlank(message = "用户主键不能为空")
@Column(name = "user_id")
private String userId;
/**
* 角色主键
*/
@NotBlank(message = "角色主键不能为空")
@Column(name = "role_id")
private String roleId;
}
@@ -1,10 +1,10 @@
package com.xwbing.domain.model;
package com.xwbing.entity.model;
import java.util.Date;
/**
* 说明: 邮箱属性
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -1,4 +1,4 @@
package com.xwbing.domain.model;
package com.xwbing.entity.model;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
@@ -14,7 +14,7 @@ import java.util.Date;
/**
* 说明: hibernate validate JSR303校验框架
* controller层新增或更新的实体前加@Valid注解
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/17 16:13
* 作者: xiangwb
*/
@@ -2,7 +2,7 @@ package com.xwbing.exception;
/**
* 说明: 自定义业务异常
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -8,7 +8,7 @@ package com.xwbing.exception;
/**
* 说明: 用户系统中未登陆异常
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/10 16:36
* 作者: xiangwb
*/
@@ -10,7 +10,7 @@ import redis.clients.jedis.JedisPoolConfig;
/**
* 说明: redisConfig
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
@@ -2,7 +2,7 @@ package com.xwbing.redis;
/**
* 说明: 封装redis 缓存服务器服务接口
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
@@ -13,7 +13,7 @@ import java.util.Set;
/**
* 说明: 启动时刷新redis缓存
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
@@ -1,10 +1,13 @@
package com.xwbing.repository;
import com.xwbing.domain.SysAuthority;
import com.xwbing.entity.SysAuthority;
import org.springframework.data.jpa.repository.JpaRepository;
/**
*
* 说明:
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
public interface AuthorityRepository extends JpaRepository<SysAuthority,String> {
}
@@ -1,10 +1,13 @@
package com.xwbing.repository;
import com.xwbing.domain.SysRole;
import com.xwbing.entity.SysRole;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* Created by admin on 2017/4/11.
* 说明:
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
public interface RoleRepository extends JpaRepository<SysRole,String> {
}
@@ -1,14 +1,13 @@
package com.xwbing.repository;
import com.xwbing.domain.SysConfig;
import com.xwbing.entity.SysConfig;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* 浙江卓锐科技股份有限公司 版权所有 ? Copyright 2016<br/>
* 说明: <br/>
* 项目名称: ${project_name} <br/>
* 创建日期: ${date} ${time} <br/>
* 作者: wdz
* 说明:
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
public interface SysConfigRepository extends JpaRepository<SysConfig,String> {
SysConfig findByCode(String code);
@@ -1,11 +1,13 @@
package com.xwbing.repository;
import com.xwbing.domain.SysUser;
import com.xwbing.entity.SysUser;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* 说明:
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
public interface UserRepository extends JpaRepository<SysUser, String> {
List<SysUser> findByUserName(String userName);
SysUser findByUserName(String name);
}
@@ -9,7 +9,7 @@ import java.util.Objects;
/**
* 说明:
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
@@ -26,10 +26,10 @@ public class BaseService<T> {
RestMessage result=new RestMessage();
t=jpaRepository.save(t);
if(Objects.isNull(t)){
result.setMsg("保存数据失败");
result.setMessage("保存数据失败");
}else {
result.setSuccess(true);
result.setMsg("保存数据成功");
result.setMessage("保存数据成功");
}
return result;
}
@@ -43,7 +43,7 @@ public class BaseService<T> {
RestMessage result=new RestMessage();
jpaRepository.delete(id);
result.setSuccess(true);
result.setMsg("删除数据成功");
result.setMessage("删除数据成功");
return result;
}
@@ -15,7 +15,7 @@ import javax.mail.internet.MimeMessage;
import java.io.File;
/**
* 项目名称: sb-demo
* 项目名称: boot-module-demo
* 创建时间: 2017/9/18 11:31
* 作者: xiangwb
* 说明: mail服务层
@@ -43,7 +43,7 @@ public class MailService {
message.setText(content);
mailSender.send(message);
restMessage.setSuccess(true);
restMessage.setMsg("纯文本邮件已经发送");
restMessage.setMessage("纯文本邮件已经发送");
return restMessage;
}
@@ -66,7 +66,7 @@ public class MailService {
helper.setText(content, true);//启用html
mailSender.send(message);
restMessage.setSuccess(true);
restMessage.setMsg("html邮件已经发送!");
restMessage.setMessage("html邮件已经发送!");
return restMessage;
} catch (MessagingException e) {
throw new BusinessException("发送html邮件时发生异常");
@@ -98,7 +98,7 @@ public class MailService {
// 可以继续添加附件。。。。。
mailSender.send(message);//发送邮件
restMessage.setSuccess(true);
restMessage.setMsg("带附件的邮件已经发送!");
restMessage.setMessage("带附件的邮件已经发送!");
return restMessage;
} catch (MessagingException e) {
throw new BusinessException("发送带附件的邮件时发生异常");
@@ -129,7 +129,7 @@ public class MailService {
helper.addInline(rscId, res);
mailSender.send(message);
restMessage.setSuccess(true);
restMessage.setMsg("嵌入静态资源的邮件已经发送!");
restMessage.setMessage("嵌入静态资源的邮件已经发送!");
return restMessage;
} catch (MessagingException e) {
throw new BusinessException("发送嵌入静态资源的邮件时发生异常!");
@@ -1,6 +1,6 @@
package com.xwbing.service;
import com.xwbing.domain.SysConfig;
import com.xwbing.entity.SysConfig;
import com.xwbing.exception.BusinessException;
import com.xwbing.repository.SysConfigRepository;
import com.xwbing.util.PassWordUtil;
@@ -15,7 +15,7 @@ import java.util.Objects;
/**
* 说明:
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
@@ -39,9 +39,9 @@ public class SysConfigService {
SysConfig one = sysConfigRepository.save(sysConfig);
if (Objects.nonNull(one)) {
result.setSuccess(true);
result.setMsg("保存配置成功");
result.setMessage("保存配置成功");
} else {
result.setMsg("保存配置失败");
result.setMessage("保存配置失败");
}
return result;
}
@@ -55,7 +55,7 @@ public class SysConfigService {
}
sysConfigRepository.delete(old.getId());
result.setSuccess(true);
result.setMsg("删除配置成功");
result.setMessage("删除配置成功");
return result;
}
@@ -2,25 +2,25 @@ package com.xwbing.service;
import com.alibaba.fastjson.JSONObject;
import com.xwbing.constant.CommonConstant;
import com.xwbing.constant.CommonEnum;
import com.xwbing.domain.SysConfig;
import com.xwbing.domain.SysUser;
import com.xwbing.domain.model.EmailModel;
import com.xwbing.entity.SysConfig;
import com.xwbing.entity.SysUser;
import com.xwbing.entity.model.EmailModel;
import com.xwbing.exception.BusinessException;
import com.xwbing.repository.UserRepository;
import com.xwbing.util.*;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* 说明:
* 项目名称: sbdemo
* 项目名称: boot-module-demo
* 创建时间: 2017/5/5 16:44
* 作者: xiangwb
*/
@@ -33,25 +33,24 @@ public class UserService {
/**
* 增
*
* @param sysUser
* @return
*/
public RestMessage save(SysUser sysUser) {
RestMessage result = new RestMessage();
SysUser old = findByUserName(sysUser.getUserName());
if (Objects.nonNull(old)) {
if (old != null) {
throw new BusinessException("已经存在此用户名");
}
sysUser.setId(PassWordUtil.createId());
sysUser.setCreateTime(new Date());
// 设置否管理员
sysUser.setIsAdmin(CommonEnum.YesOrNo.NO.getCode());
// 获取初始密码
String[] res = PassWordUtil.getUserSecret(null, null);
sysUser.setSalt(res[1]);
sysUser.setPassword(res[2]);
SysUser one = userRepository.save(sysUser);
if (Objects.isNull(one)) {
if (one == null) {
throw new BusinessException("新增用户失败");
}
SysConfig sysConfig = sysConfigService.findByCode(CommonConstant.SYSCONFIG_EMAILCONFIGKEY);
@@ -77,18 +76,16 @@ public class UserService {
/**
* 删
*
* @param id
* @return
*/
public RestMessage removeById(String id) {
RestMessage result = new RestMessage();
SysUser old=findOne(id);
if(Objects.isNull(old)){
SysUser old = findOne(id);
if (old == null) {
throw new BusinessException("该对象不存在");
}
if (CommonEnum.YesOrNo.YES.getCode().equalsIgnoreCase(old.getIsAdmin())) {
throw new BusinessException("不能对管理员进行删除操作");
}
userRepository.delete(id);
result.setSuccess(true);
return result;
@@ -97,13 +94,14 @@ public class UserService {
/**
* 更新
*
* @param sysUser
* @return
*/
public RestMessage update(SysUser sysUser){
RestMessage result=new RestMessage();
SysUser old=findOne(sysUser.getId());
if(Objects.isNull(old)){
public RestMessage update(SysUser sysUser) {
RestMessage result = new RestMessage();
SysUser old = findOne(sysUser.getId());
if (old == null) {
throw new BusinessException("该对象不存在");
}
// 根据实际情况补充
@@ -111,17 +109,19 @@ public class UserService {
old.setMail(sysUser.getMail());
old.setSex(sysUser.getSex());
old.setUserName(sysUser.getUserName());
SysUser one=userRepository.save(old);
if(Objects.nonNull(one)){
result.setMsg("更新用户成功");
SysUser one = userRepository.save(old);
if (one == null) {
result.setMessage("更新用户成功");
result.setSuccess(true);
}else {
result.setMsg("更新用户失败");
} else {
result.setMessage("更新用户失败");
}
return result;
}
/**
* 单个查询
*
* @param id
* @return
*/
@@ -131,12 +131,70 @@ public class UserService {
/**
* 列表查询
*
* @return
*/
public List<SysUser> findList() {
List<SysUser> list = null;
list = userRepository.findAll();
return list;
return userRepository.findAll();
}
/**
* 修改密码
*
* @param newPassWord
* @param oldPassWord
* @param loginUserId
* @return
*/
public RestMessage updatePassWord(String newPassWord, String oldPassWord, String loginUserId) {
RestMessage result = new RestMessage();
SysUser sysUser = findOne(loginUserId);
if (sysUser == null)
throw new BusinessException("该用户不存在");
boolean flag = checkPassWord(oldPassWord, sysUser.getPassword(), sysUser.getSalt());
if (!flag)
throw new BusinessException("原密码错误,请重新输入");
String[] str = PassWordUtil.getUserSecret(newPassWord, null);
sysUser.setSalt(str[1]);
sysUser.setPassword(str[2]);
SysUser one = userRepository.save(sysUser);
if (Objects.nonNull(one)) {
result.setMessage("更新密码成功");
result.setSuccess(true);
} else {
result.setMessage("更新密码失败");
}
return result;
}
/**
* 登录
*
* @param req
* @param userName
* @param passWord
* @param ckeckCode
* @return
*/
public RestMessage login(HttpServletRequest req, String userName, String passWord, String ckeckCode) {
RestMessage restMessage = new RestMessage();
HttpSession session = req.getSession();
String imgCode = (String) session.getAttribute(CommonConstant.KEY_CAPTCHA);
//验证验证码
if (!ckeckCode.equalsIgnoreCase(imgCode) || StringUtils.isEmpty(ckeckCode)) {
throw new BusinessException("验证码错误");
}
//验证账号,密码
SysUser user = findByUserName(userName);
if (user == null)
throw new BusinessException("账号错误");
boolean flag = checkPassWord(passWord, user.getPassword(), user.getSalt());
if (!flag)
throw new BusinessException("密码错误");
session.setAttribute(CommonConstant.SESSION_CURRENT_USER, userName);
restMessage.setSuccess(true);
restMessage.setMessage("登录成功");
return restMessage;
}
/**
@@ -145,39 +203,29 @@ public class UserService {
* @param userName
* @return
*/
public SysUser findByUserName(String userName) {
SysUser sysUser = null;
List<SysUser> list = userRepository.findByUserName(userName);
if (CollectionUtils.isNotEmpty(list)) {
sysUser = list.get(0);
}
return sysUser;
private SysUser findByUserName(String userName) {
return userRepository.findByUserName(userName);
}
public RestMessage updatePassWord(String newPassWord, String oldPassWord,
String loginUserId){
RestMessage result=new RestMessage();
SysUser sysUser=findOne(loginUserId);
/**
* 校验密码
*
* @param realPassWord
* @param passWord
* @param salt
* @return
*/
private boolean checkPassWord(String passWord, String realPassWord, String salt) {
boolean flag;
// 根据密码盐值, 解码
byte[] salt = EncodeUtils.hexDecode(sysUser.getSalt());
byte[] hashPassword = Digests.sha1(oldPassWord.getBytes(), salt,
byte[] saltByte = EncodeUtils.hexDecode(salt);
byte[] hashPassword = Digests.sha1(passWord.getBytes(), saltByte,
SysUser.HASH_INTERATIONS);
// 密码 数据库中密码
String validatePassWord = EncodeUtils.hexEncode(hashPassword);
if (!Objects.equals(validatePassWord,sysUser.getPassword())) {// 如果不相等
throw new BusinessException("原密码错误,请重新输入");
}
String[] str = PassWordUtil.getUserSecret(newPassWord, null);
sysUser.setSalt(str[1]);
sysUser.setPassword(str[2]);
SysUser one=userRepository.save(sysUser);
if(Objects.nonNull(one)){
result.setMsg("更新密码成功");
result.setSuccess(true);
}else {
result.setMsg("更新密码失败");
}
return result;
//判断密码是否相同
flag = realPassWord.equals(validatePassWord);
return flag;
}
}
@@ -1,7 +1,7 @@
package com.xwbing.util;
import com.xwbing.domain.model.EmailModel;
import com.xwbing.entity.model.EmailModel;
import com.xwbing.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;
@@ -41,7 +41,7 @@ public class JSONObjResult {
public static JSONObject toJSONObj(RestMessage rest) {
JSONObjResult jsonObjResult = new JSONObjResult();
jsonObjResult.setSuccess(rest.isSuccess());
jsonObjResult.setMessage(rest.getMsg());
jsonObjResult.setMessage(rest.getMessage());
jsonObjResult.setData(JSONUtil.beanToMap(rest.getData()));
jsonObjResult.setId(rest.getId());
return JSON.parseObject(JSON.toJSONString(jsonObjResult, SerializerFeature.WriteMapNullValue));
@@ -1,73 +1,19 @@
package com.xwbing.util;
import java.io.Serializable;
import lombok.Data;
import java.io.Serializable;
/**
* 说明:返回消息封装类
* 创建日期: 2017年3月3日 上午11:43:13
* 作者: xiangwb
*/
@Data
public class RestMessage implements Serializable {
private static final long serialVersionUID = -4167591341943919542L;
private boolean isSuccess = false;// 默认false
private String msg;// 成功、错误返回提示信息
private boolean success = false;// 默认false
private String message;// 成功、错误返回提示信息
private Object data;// 返回的数据
private String id;// 新增、修改主鍵返回id
private Integer code;//错误码
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
public RestMessage() {
super();
}
public RestMessage(Object data) {
super();
this.data = data;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public RestMessage(boolean isSuccess, Object data) {
super();
this.isSuccess = isSuccess;
this.data = data;
}
}
@@ -1,5 +1,7 @@
package com.xwbing.util.captcah;
import com.xwbing.constant.CommonConstant;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -12,15 +14,10 @@ import java.io.OutputStream;
/**
* 说明: 创建验证码的servlet
* 创建日期: 2016年8月29日 上午10:59:27
* 作者: xiangwb
* 作者: xiangwbd
*/
public class CaptchaServlet extends HttpServlet {
private static final long serialVersionUID = -124247581620199710L;
/*
* 存放session中的值
*/
public static final String KEY_CAPTCHA = "SE_KEY_MM_CODE";
@Override
protected void service(HttpServletRequest req, HttpServletResponse res) {
// 设置相应类型,告诉浏览器输出的内容为图片
@@ -34,8 +31,8 @@ public class CaptchaServlet extends HttpServlet {
CaptchaUtil tool = new CaptchaUtil();
StringBuffer code = new StringBuffer();
BufferedImage image = tool.genRandomCodeImage(code);
session.removeAttribute(KEY_CAPTCHA);
session.setAttribute(KEY_CAPTCHA, code.toString());
session.removeAttribute(CommonConstant.KEY_CAPTCHA);
session.setAttribute(CommonConstant.KEY_CAPTCHA, code.toString());
// 将内存中的图片通过流形式输出到客户端
OutputStream out = res.getOutputStream();
ImageIO.write(image, "JPEG", out);