如何配置 Simple Framework 以要求 SSL 客户端身份验证?

2024-02-13

我正在使用以下方式编写 HTTP 服务器简单的框架 http://www.simpleframework.org/并希望要求客户提供由我的证书颁发机构签名的有效证书才能建立连接。

我编写了以下基本服务器。如何修改此代码以要求对所有 SSL 连接进行客户端证书身份验证?

public static void main(String[] args) throws Exception {
    Container container = createContainer();

    Server server = new ContainerServer(container);
    Connection connection = new SocketConnection(server);
    SocketAddress address = new InetSocketAddress(8443);

    KeyManagerFactory km = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    KeyStore serverKeystore = KeyStore.getInstance(KeyStore.getDefaultType());
    try(InputStream keystoreFile = new FileInputStream(SERVER_KEYSTORE_PATH)) {
        serverKeystore.load(keystoreFile, "asdfgh".toCharArray());
    }
    km.init(serverKeystore, SERVER_KS_PASSWORD.toCharArray());

    TrustManagerFactory tm = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
    KeyStore caKeystore = KeyStore.getInstance(KeyStore.getDefaultType());
    try(InputStream caCertFile = new FileInputStream(CA_CERT_PATH)) {
        caKeystore.load(caCertFile, CA_KS_PASSWORD.toCharArray());
    }
    tm.init(caKeystore);

    SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init(km.getKeyManagers(), tm.getTrustManagers(), null);

    connection.connect(address, sslContext);
}

Try this

public class MyServer implements org.simpleframework.transport.Server {

   private Server delegateServer;

   public MyServer(Server delegateServer){
      this.delegateServer = delegateServer;
   }

   public void process(Socket socket){
     socket.getEngine().setNeedClientAuth(true);
     delegateServer.process(socket);
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置 Simple Framework 以要求 SSL 客户端身份验证? 的相关文章

  • 无法查找 Websphere 8.5 中是否启用了 SSL

    我编写了一个简单的 ejb 瘦客户端来查找 IBM WebSphere 8 5 中部署的 bean 当服务器上未启用 SSL 时 我能够成功查找 bean 但是一旦启用 SSL 我就开始收到下面提到的异常 This is how I ena
  • SSL 和 Tkinter 不存在于 Python 3.5.2、Debian Linux 的源代码构建中

    我刚刚将 Python 3 5 2 下载到我的 Debian 机器上并使用以下命令构建它 configure make make test sudo make install 一切正常 但在make test输出中 它显示安装程序由于未安装
  • 当建立 TLS / LDAP 或 TLS / HTTP 连接时,线路上会发生什么?

    我正在重新表述我的问题 希望能得到更好的答复 我问了类似的问题这里服务器故障 https serverfault com questions 178561 what are the exact protocol level differen
  • SSL 到底如何工作?

    SSL 是如何工作的 证书安装在客户端 或浏览器 和服务器 或Web服务器 的哪里 当您在浏览器中输入 URL 并从服务器获取页面时 信任 加密 身份验证过程如何启动 HTTPS协议如何识别证书 当证书负责所有信任 加密 身份验证工作时 为
  • SSL 连接在 MySQL Workbench 中有效,但在 DBeaver 中无效

    为当今读者编辑 这是旧版本 DBeaver 中的一个错误 随后已修复 我尝试在 DBeaver 中使用 SSL 连接到 Google Cloud SQL MySQL 实例时遇到 访问被拒绝 错误 我能够 在 MySQL Workbench
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • Spring Boot 是否支持服务器名称指示(SNI)?

    Spring Boot 是否支持服务器名称指示 SNI 具体来说 运行嵌入式 Tomcat 服务器并打包为可执行 jar 文件的 Spring Boot 2 2 2 RELEASE 应用程序是否可以根据传入请求的主机名支持多个 SSL 证书
  • 如何将 OpenSSL 与 WinSock 一起使用?

    我在网上搜索过 但没有找到任何与此相关的内容 有谁有使用 WinSock 和 OpenSSL 的简单代码示例吗 我正在寻找一个简单的 Visual C 2005 或更高版本的代码示例 它创建并打开一个 Winsock 连接 并使用 Open
  • 向 Python 2.6 添加 SSL 支持

    我尝试使用sslPython 2 6 中的模块 但我被告知它不可用 安装OpenSSL后 我重新编译2 6 但问题仍然存在 有什么建议么 您安装了 OpenSSL 开发库吗 我必须安装openssl devel例如 在 CentOS 上 在
  • 如何使用Python中字符串变量中存储的证书打开ssl套接字

    在Python中 ssl wrap socket可以从文件中读取证书 ssl wrap socket需要证书作为文件路径 如何使用从字符串变量读取的证书启动 SSL 连接 我的主机环境不允许写入文件 并且临时文件模块不起作用我正在使用Pyt
  • fsockopen() 和 SSL 出错,“无法启用加密”

    我正在尝试连接到 Nominet EPP 测试台 但收到 无法启用加密 的消息 这似乎是一个罕见的错误 没有记录的解决方案或原因 用行 socket fsockopen ssl testbed epp nominet org uk 700
  • mysql jdbc 与 SSL 连接在 tls 握手级别失败

    我们的 mysql 服务器配置为仅接受与 ssl 密码 DHE RSA AES256 GCM SHA384 的连接 我正在使用 java mysql connector java 8 0 15 和 java 8 openjdk 版本 1 8
  • AWS EC2 应用程序负载均衡器 + 双向 SSL?

    是否可以使用 AWS Application Load Balancer 并使用双向 ssl 客户端证书 我当前的设置使用经典的 ELB 通过 tcp 转发到 Web 服务器端点来支持此操作 我现在需要使用 URL 路由流量 并希望在可能的
  • SSL_connect 返回=1 errno=0 状态=SSLv3 读取服务器证书 B:证书验证仅在代理时失败

    这篇文章几乎重复了许多其他帖子 包括Rails 4 和 Ruby 2 Net HTTP SSL 请求 OpenSSL SSL SSLError SSL connect returned 1 errno 0 state SSLv2 v3 re
  • Android - API 请求

    我开发了一个应用程序 它也在 iPhone 上 问题出在 api 请求上 我为所有请求设置了超时 有时会出现 30 60 秒的中断 看起来这个应用程序执行了几个请求 然后就中断了 一直超时 大约 45 秒后一切正常 不知道是服务器问题还是安
  • CakePHP - 选择性 SSL

    如何对网站的某些部分强制使用 HTTPS 例如登录页面或注册页面 并使用 HTTP 来完成网站的其余部分 我最喜欢的强制转换为 https 的方法是将其作为 php 脚本中的第一件事 它可以在 Joomla 中运行 也可以在 CakePHP
  • 使用仅具有 CA 证书且无密钥库的 SSLContext

    我需要设置一个javax net ssl SSLContext用于 Jersey Client 应用程序 我想要做的就是接受自定义根 ca 证书的上下文 真的没有办法生成密钥库文件并导入 CA 证书吗 确实没有办法生成密钥库 文件并导入CA
  • ssl.SSLEOFError: EOF 发生违反协议 (_ssl.c:1129)

    我正在尝试使用 GOOGLE Drive Api 从电脑上传多个文件到云端硬盘 from pydrive auth import GoogleAuth from pydrive drive import GoogleDrive import
  • 简单的 Xml - 元素的顺序未保留?

    我在我的 Android 应用程序中使用 SimpleXml 2 6 1 尽管文档 http simple sourceforge net download stream doc javadoc index html org simplef
  • 信任库是否需要子 ca 证书?

    我正在尝试设置分层 PKI 我是否可以创建仅包含根 ca 证书的信任库 这是否意味着我的应用程序信任由子 ca 证书签名的证书 而子 ca 证书又由根 ca 签名 顺便说一句 您似乎必须提供整个证书链 包括根 ca 证书 当然 如果根 ca

随机推荐

  • 在单独的表单上更改 NotifyIcon

    我有一个带有 NotifyIcon 的表单 Form1 我有另一个表单 Form2 我想更改 NotifyIcon 的图标 每当我使用此代码时 我都会在系统托盘中显示一个额外的图标 而不是更改当前图标 Form1 ico 是 NotifyI
  • 如何提示用户选择保存文件的位置?

    在我的主表单中 我有一个名为 SavePDFDocument 的方法 private void SavePDFDocument PDFWrapper pdfWrapper new PDFWrapper pdfWrapper CreatePD
  • getResponseCode 中的 HttpURLConnection 随机出现 SocketTimeoutException

    我在 con getResponseCode 中收到以下错误 java net SocketTimeoutException failed to connect to example com port 80 after 3000ms at
  • 如何在 SQLAlchemy 中实现空合并运算符?

    或者我该如何让这个东西发挥作用 我有一个 Interval 对象 class Interval Base tablename intervals id Column Integer primary key True start Column
  • Plotly.js:初始缩放

    我有 256 个数据点 当绘图首次出现时 我希望 x 轴自动缩放到沿 X 轴的特定范围 有办法吗 我必须以某种方式打到 D3 吗 就像是 Plotly plot graph some data trace xaxis range 0 1 t
  • 导入 const 数组 React

    我尝试将一个数组导入到我的父组件中 并将该数据作为道具发送给他的孩子 import Seed from const Seed export default class ProductList extends React Component
  • 在 Ansible 中动态构建变量名称

    我有一个剧本 它将迭代不同环境 dev 和 prod 中的一组主机 主机所处的环境会改变它所拥有的其他变量 例如 这是在我的 vars main yml 文件中 folder list DEV folder 1 folder 2 folde
  • 以给定概率生成随机数

    我有一个问题 基本上是以下 matlab 问题的矢量化 R 解决方案 matlab 生成给定概率的随机数 https stackoverflow com questions 13914066 generate random number w
  • 不带扩展名的文件名的正则表达式

    我正在寻找一个正则表达式 它将捕获没有扩展名的文件名 并在反向引用中给我该名称 以便我可以添加扩展名 因此 如果有人输入 xyz 我可以将其替换为 xyz html 不应捕获 xyz php 或 xyz html Thanks 使用以下正则
  • 写入大文件

    我尝试写入一个大文件 但它似乎不适用于大于 2GB 的文件 我尝试过使用 boost iostreams file sink 这只是升压流的限制吗 还有其他方法可以在 Win64 和 win32 上写入大文件吗 这取决于 您正在使用的文件系
  • Application.LoadComponent 出现线程错误(键已存在)

    MSDN 说 System Windows Application 的公共静态成员是线程安全的 但是当我尝试使用多个线程运行我的应用程序时 出现以下异常 ArgumentException An entry with the same ke
  • Scala - 辅助构造函数总是必须调用另一个构造函数有什么好处?

    来自 Java 世界 我不明白 Scala 中对辅助构造函数的限制有什么帮助 在Java中 我知道我们可以有多个构造函数 只要它们的签名不同 在 Scala 中 辅助构造函数中的第一个调用必须是另一个辅助构造函数或类的主构造函数 为什么 这
  • 如何在Lua中给定日期时间添加天数

    我是 Lua 脚本的新手 我的系统在任何时区运行 但我需要格林威治标准时区的新日期和格林威治标准时间的给定日期 local creation date 2016 05 23 07 34 19 This is in GMT date loca
  • 重写子类中的 ReadOnly 属性以使其读/写(VB.NET 或 C#)

    这在带有属性的 VB NET 中似乎不可能 因为属性语句本身必须描述它是否是ReadOnly or not 在我下面的例子中 它不允许我做ReadWriteChild编译 我想我可以让父级读 写 然后让 ReadOnlyChild 的设置器
  • 更新 COSU 设备中的 Android 应用程序

    我正在从事应用程序支持工作COSU 应用程序 Android https developer android com work cosu html 该应用程序对我来说运行良好 但我不明白用户将如何更新我们的应用程序 因为 COSU 应用程序
  • PowerShell 区分大小写变量

    我想编写一个脚本来对我公司的用户进行操作 用户名可以是大写字母 小写字母 而且域名有时也会用大写字母分配给他们 所以用户名可以是这样的 域 用户名 域 用户名 域 用户名或域 用户名 我要求这样的用户名 user Read Host Ple
  • 收到“由以下原因引起:java.lang.VerifyError:”

    我创建了一个 Android 应用程序 它在另一个 Android 应用程序中用作库 我在 android 应用程序中使用了一些第三方 jar 来充当库 当我在我的 android 应用程序中链接这个库并运行它时 当它尝试访问库中存在的类时
  • git 没有这样的文件或目录

    我正在构建一个应用程序 并且一如既往地使用 Git 进行版本控制 以下是输入和输出 希望您能帮助我 git status On branch master Untracked files use git add
  • 不通过使用 CSS 更改 Gridview 中的标题文本颜色

    我正在使用 asp net c 我正在使用 gridview 来显示数据 我通过 CSS 控制所有格式 在 gridview 中 我定义了 itemtemplate edititemtemplate footertemplate 并通过模板
  • 如何配置 Simple Framework 以要求 SSL 客户端身份验证?

    我正在使用以下方式编写 HTTP 服务器简单的框架 http www simpleframework org 并希望要求客户提供由我的证书颁发机构签名的有效证书才能建立连接 我编写了以下基本服务器 如何修改此代码以要求对所有 SSL 连接进