SpringBoot学习之验证信息国际过

以登录为例:

1.controller的登录方法:

@RequestMapping("/SSOAuth/login")
@ResponseBody
public ResponseValue login(@Valid @RequestBody LoginParam param, BindingResult result) {
  //验证数据合法性
  if (result.hasErrors()) {
    ResponseValue responseValue = ResponseValue.newInstance(HeadCode.BAD_REQUEST);
    responseValue.getHead().setMsg(result.getFieldError().getDefaultMessage());
    return responseValue;
  }

  String loginName = param.getLoginName();
  String pwd = param.getPassword();
  if (loginValidation.exist(loginName) == false) {
    ResponseValue value = ResponseValue.newInstance(HeadCode.NOT_FIND);
    value.getHead().setMsg("用户信息不存在!");
    return value;
  }
  if (loginValidation.verify(loginName, pwd) == false) {
    ResponseValue value = ResponseValue.newInstance(HeadCode.BAD_REQUEST);
    value.getHead().setMsg("密码不正确!");
    return value;
  }
  return result(loginName, new Date());
}

该方法的关键是@valid注解和BindingResult结合使用验证传入的信息是否合法,LoginParam这是验证对象。

2.验证对象:

public class LoginParam implements Serializable {

  private static final long serialVersionUID = 1L;

  @NotBlank(message="{NotBlank.name}")
  @Length(min=0, max=50, message="loginName长度超出范围")
  private String loginName;

  @NotBlank(message="{NotBlank.password}")
  @Length(min=6, max=10, message="password长度超出范围")
  private String password;

  public String getLoginName() {
    return loginName;
  }

  public void setLoginName(String loginName) {
  this.loginName = loginName;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }
}

时间: 2024-10-14 05:08:06

SpringBoot学习之验证信息国际过的相关文章

python学习之-员信息增删改查

python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证, #!/usr/bin/env python# coding=utf8#author:[email protected] import os, sys, time,jsonimport re member_dict = \ {}member_name_list = []member_list = []def handler_mem

LDD3之并发和竞态-completion(完成量)的学习和验证

LDD3之并发和竞态-completion(完成量)的学习和验证 首先说下测试环境: Linux2.6.32.2 Mini2440开发板 一开始难以理解书上的书面语言,这里<linux中同步例子(完成量completion)>举了一个公交车上司机和乘客的例子还不错,转过来: 这是一个公交司机和售票员之间的线程调度,用于理解完成量,完成量是对信号量的一种补充,主要用于多处理器系统上发生的一种微妙竞争.在这里两个线程间同步,只有当售票员把门关了后,司机才能开动车,只有当司机停车后,售票员才能开门.

Springboot学习05-自定义错误页面完整分析

Springboot学习06-自定义错误页面完整分析 前言 接着上一篇博客,继续分析Springboot错误页面问题 正文 1-自定义浏览器错误页面(只要将自己的错误页面放在指定的路径下即可) 1-1-Springboot错误页面匹配机制(以404错误为例): 1-在模板引擎下:找templates/error/404.html;如果没有,则继续匹配 2-在模板引擎下:找templates/error/4XX.html;如果没有,则继续匹配 3-在静态资源下:找static/error/404.

SpringBoot学习- 8、整合Shiro

Shiro是什么,引自百度百科:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序. 关于Shiro网上讲的很多,以下代码是来自网上几篇博客文章的代码集成, 下面是集成步骤 1.pom.xml添加以下内容 <dependency> <groupId>org.apache.shiro</groupId> <

【改自lg2lh】EZ-USB 68013 学习笔记--设备信息安装文件CyUSB.inf详细说明

首先要明白一个INF文件的基本结构:INF由节组成,即一个个段组成.每个段的功能不一样.(大部分书上把这个段叫作"节") [Version]段:主要用说明版本信息的. [Strings]段:字符串信息,用于常量定义,用于显示.凡在其他段中出现的%XXXX%(就是两个百分号夹着一组字母),则对应的就会在Strings段里对应着它的一个字符串. [SourceDisksNames]段:定义安装源文件所在磁盘,一般为1,表示在第一个磁盘.此节可无. [SourceDiskFiles]段:驱动

看好你的门-确保验证机制的安全(3)-正确处理验证信息

首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考. 1. 前提 执行安全的验证机制,不仅仅要同时满足几个关键安全目标,许多的时候也需要牺牲其他目标.比如易用性.成本.还有功能. 2. 正确处理验证信息的基本要求 一些基本要求,写下来,以后也可以参考. 1. 要确认完整的用户名和密码等信息:也就是说,要区分大小写,不过滤或者修改任何字符,不添加也不截断密码: 2. 应用程序要在处理验证信息的过程中,主动防御无法预料的时间.重要的是,如果系统无法

在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容

在前两篇中,体验了Knockout的基本验证和自定义验证.本篇自定义验证信息的显示位置与内容. 自定义验证信息的显示位置 通常,Knockout的验证信息紧跟在input后面,通过validationMessage属性可以自定义验证信息的显示位置. @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <style type="text/css">

Android学习7--日志信息的使用

在代码的调试中,日志信息是必不可少的,关于日志信息的使用,接下来,小编简要的说明一下: 日志分为几种:Verbose:从字面上解释,verbose为冗长的,啰嗦的,所以verbose日志信息输出的内容较为全面                    Debug日志信息                    Info日志信息                    Warn日志信息                    Error日志信息                    Assert日志信息 关

Python+selenium之获取验证信息

通常获取验证信息用得最多的几种验证信息分别是title,URL和text.text方法用于获取标签对之间的文本信息. 代码如下: from selenium import webdriverimport timedriver = webdriver.Firefox()driver.get("http://XXX.XXX.XXX.XXX/oneCard/login")#打印当前页面titletitle = driver.titleprint(title)#打印当前页面的URLnow_ur