请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

欣东微医疗技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 426|回复: 0

Invalid character found in the request target. The valid characters are defin...

[复制链接]

632

主题

766

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
38374
QQ
发表于 2018-3-8 08:41:28 | 显示全部楼层 |阅读模式
   昨天手欠把spring boot从1.5.9升级到1.5.10,新增人员信息提示 Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986。
    网上查了一下,原因是Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证,就是添加了些规则去限制HTTP头的规范性,提升安全性。
   解决办法:
   1 配置tomcat的catalina.properties
       添加或者修改:
         tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
    对应spring boot,应该这样修改成
        server.tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
    不过查询https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#common-application-properties,没有发现有这个属性,这个本来就是偷懒的做法,没去继续试验。
  
  2 前台用js对url编码,后台再解码
  前台js编码:
personsave () {
      let tin = this.topenid + '|' + this.trel + '|' + this.tptype + '|' + this.tpname + '|' + this.tidcard +
      '|' + this.ttel + '|' + this.thascard + '|' + this.tcardtype + '|' + this.tcardno + '|' + this.taddr
      tin = encodeURI(tin)
      this.$api.get('personsave/' + tin, null, r => {
        var obj = JSON.parse(r.data)      
        this.$router.push({name: 'Myperson1', params: { tmessages: obj.message, topenids: obj.openid }})
      })

后台java解码
@GetMapping("/api/v1/personsave/{tin}")
    public String personsave(@PathVariable String tin) throws Exception {
        tin = URLDecoder.decode(tin, "utf-8");
         ....
     }

验证通过
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|eastwill.org ( 辽ICP备17018600号

GMT+8, 2018-7-18 23:58 , Processed in 0.098184 second(s), 26 queries .

Powered by Eastwill! X3.2

© 2001-2013 Eastwill Inc.

快速回复 返回顶部 返回列表