精华内容
下载资源
问答
  • pageEncoding="UTF-8"%>Insert title herefunction login(){var username = $("#username").val();var password = $("#password").val();var params = "username="+username+"&password="+password;...

    pageEncoding="UTF-8"%>

    Insert title here

    function login(){

    var username = $("#username").val();

    var password = $("#password").val();

    var params = "username="+username+"&password="+password;

    $.ajax({

    'url' : '${pageContext.request.contextPath }/login',

    'data' : params,

    'success' : function(data){

    if(data.code == 200){

    var token = data.token;

    // web storage的查看 - 在浏览器的开发者面板中的application中查看。

    // local storage - 本地存储的数据。 长期有效的。

    // session storage - 会话存储的数据。 一次会话有效。

    var localStorage = window.localStorage; // 浏览器提供的存储空间。 根据key-value存储数据。

    localStorage.token = token;

    }else{

    alert(data.msg);

    }

    }

    });

    }

    function setHeader(xhr){ // XmlHttpRequest

    xhr.setRequestHeader("Authorization",window.localStorage.token);

    }

    function testLocalStorage(){

    $.ajax({

    'url' : '${pageContext.request.contextPath}/testAll',

    'success' : function(data){

    if(data.code == 200){

    window.localStorage.token = data.token;

    alert(data.data);

    }else{

    alert(data.msg);

    }

    },

    'beforeSend' : setHeader

    });

    }

    登录测试

    登录名:

    密码:

    展开全文
  • } } 修改swagger的配置文件如上即能满足swagger中所有的接口默认都加上ticket参数,非必填如下图: 以上这篇java swagger ui 添加header请求头参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也...

    我用到的swagger 主要有三款产品,swagger editor,swagger ui 和swagger codegen。

    swagger editor:主要是一个本地客户端,用来自己添加api,自己来测试,相当于一个api的可视化测试工具和定义工具吧。

    swagger ui:主要用户嵌入到项目中,将所有的接口生成一个可视化的页面,方便前后端联调

    swagger codegen:主要用于通过swagger来自动生成代码

    我用的swagger ui主要在java项目中。将所有的http接口提供一个可视化页面。供前端同学看到,联调非常方便,所有的接口一目了然。

    但是在使用swagger ui的时候,我有一个新的需求,就是我所有的接口都必须授权才能访问,即每个接口都必须添加一个header里的参数。一般用Authorization,但是我的键是ticket。于是尝试配置swagger,将每个接口都默认增加一个ticket的请求参数。

    我在Java中用的swagger框架是springfox。springfox是比较新的,官方也一直在更新。java添加swagger我就不详细介绍了,这里只介绍如何在所有的swagger接口中默认都添加header参数

    粘贴springfox配置如下:

    package cn.ce.platform_service.interceptors;

    import java.util.ArrayList;

    import java.util.List;

    import org.springframework.context.annotation.Bean;

    import org.springframework.test.context.web.WebAppConfiguration;

    import org.springframework.web.servlet.config.annotation.EnableWebMvc;

    import springfox.documentation.builders.ApiInfoBuilder;

    import springfox.documentation.builders.ParameterBuilder;

    import springfox.documentation.builders.RequestHandlerSelectors;

    import springfox.documentation.schema.ModelRef;

    import springfox.documentation.service.ApiInfo;

    import springfox.documentation.service.Parameter;

    import springfox.documentation.spi.DocumentationType;

    import springfox.documentation.spring.web.plugins.Docket;

    import springfox.documentation.swagger2.annotations.EnableSwagger2;

    /**

    * @Description : swagger配置配置

    * @Author : Mars

    * @Date : 2017年9月6日

    */

    @WebAppConfiguration

    @EnableSwagger2

    @EnableWebMvc

    //@ComponentScan(basePackageClasses = {ApisController.class }) //Instructs spring where to scan for API controllers

    public class SwaggerConfig {

    /**

    * Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple

    * swagger groups i.e. same code base multiple swagger resource listings.

    */

    @Bean

    public Docket customDocket(){

    ParameterBuilder ticketPar = new ParameterBuilder();

    List pars = new ArrayList();

    ticketPar.name("ticket").description("user ticket")

    .modelRef(new ModelRef("string")).parameterType("header")

    .required(false).build(); //header中的ticket参数非必填,传空也可以

    pars.add(ticketPar.build()); //根据每个方法名也知道当前方法在设置什么参数

    return new Docket(DocumentationType.SWAGGER_2)

    .select()

    .apis(RequestHandlerSelectors.any())

    .build()

    .globalOperationParameters(pars)

    .apiInfo(apiInfo());

    }

    ApiInfo apiInfo() {

    return new ApiInfoBuilder()

    .title("api swagger document")

    .description("前后端联调swagger api 文档")

    .version("2.1.5.5")

    .build();

    }

    }

    修改swagger的配置文件如上即能满足swagger中所有的接口默认都加上ticket参数,非必填如下图:

    790655d5557679ed8a4cd13ecd567095.png

    以上这篇java swagger ui 添加header请求头参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持谷谷点程序。

    展开全文
  • } } 修改swagger的配置文件如上即能满足swagger中所有的接口默认都加上ticket参数,非必填如下图: 以上这篇java swagger ui 添加header请求头参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也...

    我用到的swagger 主要有三款产品,swagger editor,swagger ui 和swagger codegen。

    swagger editor:主要是一个本地客户端,用来自己添加api,自己来测试,相当于一个api的可视化测试工具和定义工具吧。

    swagger ui:主要用户嵌入到项目中,将所有的接口生成一个可视化的页面,方便前后端联调

    swagger codegen:主要用于通过swagger来自动生成代码

    我用的swagger ui主要在java项目中。将所有的http接口提供一个可视化页面。供前端同学看到,联调非常方便,所有的接口一目了然。

    但是在使用swagger ui的时候,我有一个新的需求,就是我所有的接口都必须授权才能访问,即每个接口都必须添加一个header里的参数。一般用Authorization,但是我的键是ticket。于是尝试配置swagger,将每个接口都默认增加一个ticket的请求参数。

    我在Java中用的swagger框架是springfox。springfox是比较新的,官方也一直在更新。java添加swagger我就不详细介绍了,这里只介绍如何在所有的swagger接口中默认都添加header参数

    粘贴springfox配置如下:

    package cn.ce.platform_service.interceptors;

    import java.util.ArrayList;

    import java.util.List;

    import org.springframework.context.annotation.Bean;

    import org.springframework.test.context.web.WebAppConfiguration;

    import org.springframework.web.servlet.config.annotation.EnableWebMvc;

    import springfox.documentation.builders.ApiInfoBuilder;

    import springfox.documentation.builders.ParameterBuilder;

    import springfox.documentation.builders.RequestHandlerSelectors;

    import springfox.documentation.schema.ModelRef;

    import springfox.documentation.service.ApiInfo;

    import springfox.documentation.service.Parameter;

    import springfox.documentation.spi.DocumentationType;

    import springfox.documentation.spring.web.plugins.Docket;

    import springfox.documentation.swagger2.annotations.EnableSwagger2;

    /**

    * @Description : swagger配置配置

    * @Author : Mars

    * @Date : 2017年9月6日

    */

    @WebAppConfiguration

    @EnableSwagger2

    @EnableWebMvc

    //@ComponentScan(basePackageClasses = {ApisController.class }) //Instructs spring where to scan for API controllers

    public class SwaggerConfig {

    /**

    * Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple

    * swagger groups i.e. same code base multiple swagger resource listings.

    */

    @Bean

    public Docket customDocket(){

    ParameterBuilder ticketPar = new ParameterBuilder();

    List pars = new ArrayList();

    ticketPar.name("ticket").description("user ticket")

    .modelRef(new ModelRef("string")).parameterType("header")

    .required(false).build(); //header中的ticket参数非必填,传空也可以

    pars.add(ticketPar.build()); //根据每个方法名也知道当前方法在设置什么参数

    return new Docket(DocumentationType.SWAGGER_2)

    .select()

    .apis(RequestHandlerSelectors.any())

    .build()

    .globalOperationParameters(pars)

    .apiInfo(apiInfo());

    }

    ApiInfo apiInfo() {

    return new ApiInfoBuilder()

    .title("api swagger document")

    .description("前后端联调swagger api 文档")

    .version("2.1.5.5")

    .build();

    }

    }

    修改swagger的配置文件如上即能满足swagger中所有的接口默认都加上ticket参数,非必填如下图:

    940e93084aca79602a383e9a5e9a9348.png

    以上这篇java swagger ui 添加header请求头参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    时间: 2019-08-27

    展开全文
  • 作者:webbwanghttps://github.com/lvwxx/blog/issues/17在本文中,将介绍常用的安全信息设置,并对每个响应头设置给出一个示例。Content-Security-Policy内容安全策略(CSP)常用来通过指定允许加载哪些资源来防止...

    作者:webbwang

    https://github.com/lvwxx/blog/issues/17

    在本文中,将介绍常用的安全头信息设置,并对每个响应头设置给出一个示例。

    Content-Security-Policy

    内容安全策略(CSP)常用来通过指定允许加载哪些资源来防止跨站点脚本攻击。在接下来所介绍的所有安全头信息中,CSP 可能是创建和维护花费时间最多的而且也是最容易出问题的。在配置你的网站 CSP 过程中,要小心彻底地测试它,因为阻止某些资源有可能会破坏你的网站的功能。

    功能

    CSP 的主要目标是减少和报告 XSS 攻击, XSS 攻击利用了浏览器对于从服务器所获取的内容的信任。使得恶意脚本有可能在用户的浏览器中执行,因为浏览器信任其内容来源,即使有时候这些脚本并非来自该站点的服务器当中。

    CSP 通过指定允许浏览器加载和执行那些资源,使服务器管理者有能力减少或消除 XSS 攻击的可能性。一个 CSP 兼容的浏览器将会仅执行从白名单域获取得到的脚本文件,忽略所有其他的脚本(包括内联脚本)。

    示例

    一个最佳的 CSP 可能是下面这样(注释按照配置值的顺序),在站点包含的每一部分资源请求相关都加入域名限制。

    • 所有的内容(比如: JavaScript,image,css,fonts,ajax request, frams, html5 Media等)均来自和站点的同一个源(不包括其子域名)

    • 允许加载当前源的图片和特定源图片

    • 不允许 objects(比如 Flash 和 Java)

    • 仅允许当前源的脚本下载和执行

    • 仅允许当前源的 CSS 文件下载和执行

    • 仅允许当前源的 frames

    • 限制 标签中的 URL 与当前站点同源

    • 仅允许表单提交到当前站点

    # 所有的内容(比如: JavaScript,image,css,fonts,ajax request, frams, html5 Media等)均来自和站点的同一个源(不包括其子域名)
    # 允许加载当前源的图片和特定源图片
    # 不允许 objects(比如 Flash 和 Java)
    # 仅允许当前源的脚本下载和执行
    # 仅允许当前源的 CSS 文件下载和执行
    # 仅允许当前源的 frames
    # 限制  标签中的 URL 与当前站点同源
    # 仅允许表单提交到当前站点

    Content-Security-Policy: default-src 'self'; img-src 'self' https://img.com; object-src 'none'; script-src 'self'; style-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self';

    关于 CSP 更加详细的介绍可以看 https://content-security-policy.com/

    Strict-Transport-Security

    Strict-Transport-Security(HSTS) 告诉浏览器该站点只能通过 HTTPS 访问,如果使用了子域,也建议对任何该站点的子域强制执行此操作。

    功能

    一个站点如果接受了一个 HTTP 请求,然后跳转到 HTTPS,用户可能在开始跳转前,通过没有加密的方式和服务器对话。这样就存在中间人攻击的潜在威胁,跳转过程可能被恶意网站利用来直接接触用户信息,而不是原来的加密信息。

    网站通过HTTP Strict Transport Security通知浏览器,这个网站禁止使用HTTP方式加载,浏览器应该自动把所有尝试使用HTTP的请求自动替换为HTTPS请求。

    示例
    • 浏览器接受到这个请求后的 3600 秒内的时间,凡是访问这个域名下的请求都是用https请求

    • 指定 includeSubDomains 此规则适用该站点下的所有子域名

    # 浏览器接受到这个请求后的 3600 秒内的时间,凡是访问这个域名下的请求都是用https请求
    # 指定 includeSubDomains 此规则适用该站点下的所有子域名

    Strict-Transport-Security: max-age=3600; includeSubDomains

    X-Content-Type-Options

    X-Content-Type-Options 响应头相当于一个提示标志,被服务器用户提示浏览器一定要遵循 Content-Type 头中 MIME 类型的设定,而不能对其进行修改。

    功能

    它减少了浏览器可能“猜测”某些内容不正确的意外应用程序行为,例如当开发人员将一个页面标记为“HTML”,但浏览器认为它看起来像JavaScript并试图将其呈现为JavaScript时。这个头将确保浏览器始终按照服务器设置的MIME类型来解析。

    示例
    X-Content-Type-Options: nosniff

    Cache-Control

    Cache-Control 通用消息头字段,被用于在 http 请求和响应中,通过指定指令来实现缓存机制。缓存指令是单向的,这意味着在请求中设置的指令,不一定被包含在响应中。

    功能

    这一个比其他的稍微复杂一些,因为你可能需要针对不同的内容类型使用不同的缓存策略。

    任何包含有敏感信息的网页,例如用户个人信息页面或客户结帐页面,都应该设置为 no-cache。原因是防止共享计算机上的某人按下后退按钮或浏览历史并查看个人信息。

    示例
    Cache-Control: no-cache

    X-Frame-Options

    X-Frame-Options 响应头是用来给浏览器指示允许一个页面可否在  或者  中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免点击劫持攻击。

    功能

    如果恶意的站点将你的网页嵌入到 iframe 标签中, 在你不知道的情况下打开并点击恶意网站的某个按钮,恶意网站能够执行一个攻击通过运行一些 JavaScript 将捕获点击事件到 iframe 中,然后代表你与网站交互。

    将 X-Frame-Options 设置为 deny 可以禁止该页面在任何域中的 ifram 标签中展示。

    X-Frame-Options 设置可以由 CSP 的 frame-ancestors 配置所代替。

    示例
    X-Frame-Options: DENY # 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

    X-Frame-Options: SAMEORIGIN # 表示该页面可以在相同域名页面的 frame 中展示。

    X-Frame-Options: ALLOW-FROM uri # 表示该页面可以在指定来源的 frame 中展示。

    Access-Control-Allow-Origin

    Access-Control-Allow-Origin 响应头指定了该响应的资源是否被允许与给定的 origin 共享。

    功能

    可以被用来可解决浏览器的跨域请求。

    比如一个站点 A 页面中发起一个 AJAX 请求到 站点 B, A B 不同源。正常情况下因为浏览器的同源策略将不会把 B 的响应结果返回给 A, 除非 B 在响应头中设置允许 A 站点发起请求。

    示例
    Access-Control-Allow-Origin: * # 允许所有域请求

    Access-Control-Allow-Origin: http://someone.com # 允许特定域请求

    Set-Cookie

    Set-Cookie 响应头被用来由服务器端向客户端发送 cookie。

    示例
    • domain: 指定 cookie 可以送达的域名,默认为当前域名(不包含子域名)

    • Secure: 只有在 https 协议时才会被发送到服务端。然而,保密或敏感信息永远不要在 HTTP cookie 中存储或传输,因为整个机制从本质上来说都是不安全的

    • HttpOnly: cookie 不能使用 JavaScript代码获取到

    # domain: 指定 cookie 可以送达的域名,默认为当前域名(不包含子域名)
    # Secure: 只有在 https 协议时才会被发送到服务端。然而,保密或敏感信息永远不要在 HTTP cookie 中存储或传输,因为整个机制从本质上来说都是不安全的
    # HttpOnly: cookie 不能使用 JavaScript代码获取到

    Set-Cookie: =value>; Domain=value>; Secure; HttpOnly

    X-XSS-Protection

    X-XSS-Protection 响应头是Internet Explorer,Chrome和Safari的一个功能,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面。

    示例
    X-XSS-Protection: 1; mode=block  # 启用XSS过滤。如果检测到 XSS 攻击,浏览器将不会清除页面,而是阻止页面加载。

    总结

    设置 HTTP 头信息是相对快速和简单的对于网站的数据保护、XSS 攻击和点击劫持等攻击。有针对性的设置这些头信息,你的网站的安全性将会有不错的提高。

    觉得本文对你有帮助?请分享给更多人!

    关注「前端大学」,提升前端技能!

    3843420db7ea02a4fdb3341569f694be.png

    喜欢文章,点个 在看 464b329657a4ef1c23cb857c1bc72827.png

    展开全文
  • 在使用springMVC框架构建web应用,客户端常会请求字符串、整型、json等格式的数据,通常使用@ResponseBody注解使 controller回应相应的数据而不是去渲染某个页面。如果请求的是非英文格式的字符串,往往在客户端显示...
  • //设置请求头。不行 public class WebMagicService { public static void main(String[] args) throws Exception{ HttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(...
  • 通过java后台设置请求头部 可以根据需求修改或者添加请求头信息。 修改请求头代码 根据不同的请求方式,在main方法中选择调用不同的方法(get/post ) package com.iao.controller.feedback; import java.io....
  • java获取和设置请求头

    千次阅读 2019-09-04 11:49:23
    获取请求头内容: 获取请求头数据:request方法 String getHeader(String name):通过请求头的名称获取请求头的值 Enumeration getHeaderNames():获取所有的请求头名称 protected void doGet(HttpServletRequest ...
  • // 设置请求方式 connection.addRequestProperty("x-access-token",token); // connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式 connection.setRequestProperty("Content-...
  • 业务中遇到了一些场景,需要对请求做统一拦截,用请求参数计算新的变量设置请求头中。以下分别用Filter和Interceptor两种方式实现,(建议使用Filter的方法,因为Interceptor的方法仅仅对Post和GET方法有效,并不...
  • JAVA】拦截请求参数并设置请求头

    千次阅读 2019-01-19 21:55:25
    业务中遇到了一些场景,需要对请求做统一拦截,用请求参数计算新的变量设置请求头中。  以下分别用Filter和Interceptor两种方式实现,(建议使用Filter的方法,因为Interceptor的方法仅仅对Post和GET方法有效,...
  • 1、获取JSON或其它格式的数据// JSON exampleString json = Jsoup.connect(url).ignoreContentType...2、使用Header(请求头) "Accept:text/javascript"String InboxJson=Jsoup.connect("https://www.fiverr.com/...
  • 1、问题引发点:前不久发现一个问题: 前端并没有设置请求头信息里面的Accept-Encoding:gzip...但是在请求头中可以明显的看到Accept-Encoding:gzip, deflate, sdch,并且我尝试修改这个请求头,发现 不 生 效;2、...
  • 1、问题引发点:前不久发现一个问题: 前端并没有设置请求头信息里面的Accept-Encoding:gzip...但是在请求头中可以明显的看到Accept-Encoding:gzip, deflate, sdch,并且我尝试修改这个请求头,发现 不 生 效;2、...
  • java 请求头设置header

    千次阅读 2019-11-18 17:58:17
    直接上代码 public static JSONObject ******(String url, String id)throws Exception { HttpGet httpGet = new HttpGet(); CloseableHttpClient httpclient = HttpClients.createDefault(); List <Nam...
  • request得到请求header, request.getHeaderNames(); response设置响应。 response.setHeader(name,value);//通用的设置响应的方法 //有些响应比较常用,如果使用response.setHeader(name,value);的方式...
  • //设置请求头 postMethod.addHeader("Content-type", "text/plain;charset=utf-8"); postMethod.addHeader("accept", "*/*"); postMethod.addHeader("connection", "Keep-Alive"); postMethod.addHeader("sign...
  • 1 packagecom.zhl.common.utils;23 importorg.jsoup.Connection;4 importorg.jsoup.Connection.Method;5 importorg.jsoup.Connection.Response;6 importorg.jsoup.Jsoup;78 import javax.net.ssl...9 import java.io...
  • import java.net.SocketTimeoutException; import java.nio.charset.Charset; import java.util.Map; import net.sf.json.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...
  • # 使用的编程语言的工具使用Java的一个解析网页库Jsoup获取网页中的html代码```JavaJsoup.connect("http://xxx.cn").get();```# 出现问题过程首先有一个网页有一部分是这样然后打开网页开发工具,可以看到这部分的...
  • 最近在使用JSOUP作为爬虫爬取数据,在用习惯了JSOUP后,因为那种链式结构,非常喜欢,故想用它来请求接口,构造请求头的时候非常方便。其实它必须是支持的,因为底层使用的还是HttpConnection做为处理的,代码如下:...
  • 1首先把json参数设置好JSONObject json1=new JSONObject();json1.put("Bandwidth","");json1.put("circuitType","");json1.put("portid","");json1.put("circuitno","...2设置header请求头和url以及参数public stat...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 776
精华内容 310
关键字:

java设置请求头

java 订阅