【java】java访问https并验证账号密码

这篇具有很好参考价值的文章主要介绍了【java】java访问https并验证账号密码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java访问https,获取页面或者数据时,需要证书和账号密码的验证。

一 获取CRT证书

获取网站的证书,拿到证书后可能是crt格式,可以使用下面的命令转为p12格式

openssl pkcs12 -export -in Mycert.crt -inkey Mykey.key -out Mycert.p12 -name "Mycert"

Mycert.crt是证书,Mykey.key是生成证书同时生成的key,最终转出Mycert.p12

二 访问https,不需要账号密码

比如访问如下地址

https://hf.anjuke.com/esf-ajax/community/pc/autocomplete?city_id=33&kw=%E9%9D%92%E9%98%B3%E6%96%B0%E6%9D%91&type=3

public static void GetSSLJson4() throws Exception {
		
		final String certFile = "C:/Users/682556/wux-presto.seagate.com.p12";//证书
        final String storePass = "presto-seagate";//证书的密码
        final String keyPass = "presto-seagate";//key的密码,两者相同

        KeyStore keyStore;
        try (FileInputStream fis = new FileInputStream(certFile)) {
            keyStore = KeyStore.getInstance("PKCS12"); // or "JKS"
            keyStore.load(fis, storePass.toCharArray());//装载证书
        }

        SSLContextBuilder sslContextBuilder = SSLContexts.custom();
        sslContextBuilder.loadTrustMaterial(TrustAllStrategy.INSTANCE);
        sslContextBuilder.loadKeyMaterial(keyStore, keyPass.toCharArray());
        SSLContext sslContext = sslContextBuilder.build();

        HttpClientBuilder httpClientBuilder = HttpClients.custom();
        httpClientBuilder.setSSLContext(sslContext);
        httpClientBuilder.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);
        
        CloseableHttpClient httpClient = httpClientBuilder.build();
        HttpGet get = new HttpGet("https://hf.anjuke.com/esf-ajax/community/pc/autocomplete?city_id=33&kw=%E9%9D%92%E9%98%B3%E6%96%B0%E6%9D%91&type=3");
	
        CloseableHttpResponse response = null;
        response = httpClient.execute(get);
        
        HttpEntity entity = response.getEntity();
        String result = EntityUtils.toString(entity);
        System.out.println(result);
	}

运行上面的方法,获得json返回值

{"status":"ok","serverTime":{"year":2023,"month":"JUNE","dayOfWeek":"FRIDAY","dayOfYear":153,"era":"CE","chronology":{"calendarType":"iso8601","id":"ISO"},"leapYear":false,"monthValue":6,"dayOfMonth":2},"data":[{"id":337953,"name":"青阳新村","address":"蜀山-青阳北路-青阳北路31号","type":4,"areaId":3882,"areaName":"蜀山","price":"13818","listName":"qingyangxincun","flag":{"isCommission":"0"}}]}

三 访问https,需要账号密码

以下地址是我内部地址,需要登录输入账号密码

https://wux-presto.seagate.com:31265/v1/query/20230602_070334_01069_r2s92?pretty

【java】java访问https并验证账号密码

https内容json

 【java】java访问https并验证账号密码

 Java代码

public static void GetSSLJson4() throws Exception {
		
		final String certFile = "C:/Users/682556/wux-presto.seagate.com.p12";//证书
        final String storePass = "presto-seagate";//证书的密码
        final String keyPass = "presto-seagate";//key的密码,两者相同

        KeyStore keyStore;
        try (FileInputStream fis = new FileInputStream(certFile)) {
            keyStore = KeyStore.getInstance("PKCS12"); // or "JKS"
            keyStore.load(fis, storePass.toCharArray());//装载证书
        }

        SSLContextBuilder sslContextBuilder = SSLContexts.custom();
        sslContextBuilder.loadTrustMaterial(TrustAllStrategy.INSTANCE);
        sslContextBuilder.loadKeyMaterial(keyStore, keyPass.toCharArray());
        SSLContext sslContext = sslContextBuilder.build();

        HttpClientBuilder httpClientBuilder = HttpClients.custom();
        httpClientBuilder.setSSLContext(sslContext);
        httpClientBuilder.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);
        
        //设置https网页账号密码
        CredentialsProvider provider = new BasicCredentialsProvider();
        provider.setCredentials(new AuthScope("wux-presto.seagate.com",31265), new UsernamePasswordCredentials("账号", "密码"));
        
        CloseableHttpClient httpClient = httpClientBuilder.setDefaultCredentialsProvider(provider).build();
        HttpGet get = new HttpGet("https://wux-presto.seagate.com:31265/v1/query/20230602_070334_01069_r2s92?pretty");
	
        CloseableHttpResponse response = null;
        response = httpClient.execute(get);
        
        HttpEntity entity = response.getEntity();
        String result = EntityUtils.toString(entity,"UTF-8");
        System.out.println(result);
	}

运行以上程序,返回结果

【java】java访问https并验证账号密码

 文章来源地址https://www.toymoban.com/news/detail-468806.html

到了这里,关于【java】java访问https并验证账号密码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium两种代理方式(方式二支持账号密码验证)

    https://registry.npmmirror.com/binary.html?path=chromedriver/ 以下方式均实机测试过。 方式一 无需验证,只需填写代理IP和端口号 方式二 通过生成插件并加载通过代理验证,需要填写代理IP、端口号、验证账号和密码,该方式缺点是不支持后台静默运行(headless)

    2024年02月11日
    浏览(45)
  • JavaGui实现登录界面编写+实现账号密码验证登录+文件存储

    目录 标题一: 登录界面编写 标题二;登录界面之注册(一个类)编写  标题三:登录界面之登录编写  在登录界面这里,我们先编写一个登录界面出来,这只是一个界面,还没有实现验证账号密码和注册的功能,但得有这个界面做媒介 。 界面如下:   1.登陆界面代码在这里

    2024年02月08日
    浏览(55)
  • qt 获取登录界面账号和密码

     

    2024年02月16日
    浏览(41)
  • git拉取提交代码进行身份验证-输入账号密码以及配置SSH公钥

    git初次拉取代码或者提交代码时,需要进行身份验证。验证有两种方式:1、账号密码验证;2、SSH公钥验证。 本文章以gitee为例 1.首先找到电脑本地项目文件夹,在地址栏中输入 cmd 回车,打开命令行窗口。 2.输入 git clone 要拉取的项目地址,回车,一会弹出输入账号密码的对

    2024年02月12日
    浏览(54)
  • ELK: 给Elasticsearch, Kibanan设置访问的账号和密码

    目录 1、设置Elasticseach的密码: 2、设置Kibanan的账号和密码: 3、修改Elasticsearch的密码: 4、补充说明: 1)kibana并没有自己的账号和密码,它使用的就是elasticsearch的账号密码。  2)在windwos下尝试命令的方式修改elasticsearch的密码,失败的几种情况: 修改Elasticsearch的配置文件

    2024年02月02日
    浏览(51)
  • 为什么MySQL输入正确账号密码后仍然拒绝访问

    MySQL在输入正确的账号密码后仍然拒绝访问可能是由于以下几种原因造成的: 账号权限问题,检查该账号是否具有连接数据库的权限。 IP地址限制,检查该账号是否只能在特定的IP地址连接。 MySQL服务器配置问题,检查MySQL服务器是否正常启动并配置正确。 网络连接问题,检

    2024年02月11日
    浏览(44)
  • 没有外网的麒麟系统上搭建GitLab服务并且无需客户端账号密码验证

    要在没有外网的麒麟系统上搭建GitLab服务并且无需客户端账号密码验证,可以按照以下步骤进行操作: 安装必要的依赖包和软件 安装GitLab的依赖工具 下载并安装GitLab 配置GitLab 打开GitLab配置文件并做出如下修改: 将 external_url 配置为: 去掉 nginx 配置: 添加GitLab监听所有本

    2024年02月09日
    浏览(44)
  • win10共享文件怎么设置账号密码访问,访问无法弹出登录窗口怎么解决

    环境:window10专业版 前情提要 笔者设置共享文件账号时遇到的问题:客户端访问报错“网络错误,Windows无法访问\\\\192.168.x.x你没有权限访问,请与网络管理员联系请求访问权限”,无法弹出账号密码登录窗口。 解决:客户端菜单查找“凭据管理器”--添加Windows凭据--输入共享

    2024年02月05日
    浏览(73)
  • 使用git命令或在idea下https方式克隆代码报权限问题需删除git账号密码

    win10操作系统,使用git命令或在idea下check out项目代码,报权限认证失败问题。 使用git进行代码管理,曾使用git命令或在idea下使用https项目地址进行check out,都是正常的。这次新项目使用大禹进行代码管理,项目权限已正常赋予。但clone项目报认证失败问题,在git bash中也查看

    2024年02月03日
    浏览(42)
  • 『Nginx安全访问控制』利用Nginx实现账号密码认证登录的最佳实践

    📣读完这篇文章里你能收获到 如何创建用户账号和密码文件,并生成加密密码 配置Nginx的认证模块,实现基于账号密码的登录验证 在Web应用程序的开发中,安全性是一项至关重要的任务。当用户需要访问敏感信息或执行特定操作时,需要使用账号和密码进行身份验证。本文

    2024年02月03日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包