Wildfly 9 http 转 https

2023-12-26

我想将请求从 HTTP 重定向到 HTTPS。我正在使用 Wildfly 9。经过谷歌搜索后,我发现了以下内容,但它不起作用。 我希望有人

<subsystem xmlns="urn:jboss:domain:undertow:2.0">
    <buffer-cache name="default"/>
    <server name="default-server">
        <http-listener name="default" socket-binding="http" redirect-socket="https"/>
        <https-listener name="https" socket-binding="https" security-realm="SSLRealm"/>
        <host name="default-host" alias="localhost">
            <location name="/" handler="welcome-content"/>
            <filter-ref name="server-header"/>
            <filter-ref name="x-powered-by-header"/>
        </host>
    </server>
    <servlet-container name="default">
        <jsp-config/>
        <websockets/>
    </servlet-container>
    <handlers>
        <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
    </handlers>
    <filters>
        <response-header name="server-header" header-name="Server" header-value="WildFly/9"/>
        <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
    </filters>
</subsystem>

首先,我将此基于 WildFly 9.0.1.Final,并且我假设您只是尝试通过 HTTPS 启用 SSL,并不担心身份验证。我花了大约一天的时间才弄清楚这一切。解决这个文档:

https://docs.jboss.org/author/display/WFLY9/Admin+Guide https://docs.jboss.org/author/display/WFLY9/Admin+Guide

您要做的第一件事是按照文档中的概述创建密钥库。

https://docs.jboss.org/author/display/WFLY9/Admin+Guide#AdminGuide-EnableSSL https://docs.jboss.org/author/display/WFLY9/Admin+Guide#AdminGuide-EnableSSL

正确回答的真正重要的问题是提出的问题 你的名字和姓氏。在那里,您需要输入主机名 应用程序服务器(例如本地主机)。 在文件夹 {jboss.home}/standalone/configuration 中打开终端窗口并输入以下命令:

keytool -genkey -alias MY_ALIAS -keyalg RSA -keystore MY_KEYSTORE_FILENAME -validity 365`

NOTE:、MY_ALIAS、MY_KEYSTORE_FILENAME 和 MY_PASSWORD 是任意的,您可以根据需要设置它们。

下一步是修改独立-XXX.xml文件位于同一 {jboss.home}/standalone/configuration 目录中。我正在使用独立完整.xml文件,但我相信这也适用于其他人。

我上面链接到的文档中的下一步告诉我们将 SSL 密钥库引用放入 ManagementRealm 中。这可能会导致很多混乱。出于此响应的目的,我尝试让 WildFly 通过端口 8443 启用 SSL 以访问我的应用程序。虽然我还为管理控制台启用了 SSL(通过端口 9993),但这是稍后的事。

我建议将密钥库信息放在应用领域如下:

<security-realm name="ApplicationRealm">
    <server-identities>
        <ssl>
            <keystore path="MY_KEYSTORE_FILENAME" relative-to="jboss.server.config.dir" keystore-password="MY_PASSWORD" alias="MY_ALIAS" key-password="MY_PASSWORD"/>
        </ssl>
    </server-identities>
    <authentication>
        <local default-user="$local" allowed-users="*" skip-group-loading="true"/>
        <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
    </authentication>
    <authorization>
        <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
    </authorization>
</security-realm>

NOTE:,本节中默认文件的唯一更改应该是 server-identities 标记。除非您有其他原因需要修改身份验证标签,否则应保留该身份验证标签)。

NOTE:、MY_KEYSTORE_FILENAME、MY_ALIAS 和 MY_PASSWORD 必须与您在创建密钥时提供的值匹配。

现在,文档变得有点棘手。您现在需要向下滚动一点才能执行下一步,但不幸的是它没有告诉您这样做。现在您已在 Wildfly 中安装了密钥库并在相应的安全领域中进行了配置,您需要安装 HTTPS 侦听器并将其链接到密钥库。

https://docs.jboss.org/author/display/WFLY9/Admin+Guide#AdminGuide-HTTPSlistener https://docs.jboss.org/author/display/WFLY9/Admin+Guide#AdminGuide-HTTPSlistener

HTTPS监听器

https 侦听器提供对服务器的安全访问。最多 重要的配置选项是定义 SSL 的安全领域 安全上下文。

不幸的是,文档与 security-realm 属性不一致(之前在 ManagementRealm 中安装密钥库,此处在 ssl-realm 中引用它)。由于我将密钥库放在 ApplicationRealm 中,因此我们需要这样引用它。

此外,为了澄清一下,您需要将其放在潜流子系统。这是我在 http-listener 标签下方插入的内容:

<https-listener name="httpsServer" socket-binding="https" security-realm="ApplicationRealm"/>

下面是完整的正文潜流子系统.

<subsystem xmlns="urn:jboss:domain:undertow:2.0">
    <buffer-cache name="default"/>
    <server name="default-server">
        <http-listener name="default" socket-binding="http" redirect-socket="https"/>
        <https-listener name="httpsServer" socket-binding="https" security-realm="ApplicationRealm"/>
        <host name="default-host" alias="localhost">
            <location name="/" handler="welcome-content"/>
            <filter-ref name="server-header"/>
            <filter-ref name="x-powered-by-header"/>
        </host>
    </server>
    <servlet-container name="default">
        <jsp-config/>
        <websockets/>
    </servlet-container>
    <handlers>
        <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
    </handlers>
    <filters>
        <response-header name="server-header" header-name="Server" header-value="WildFly/9"/>
        <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
    </filters>
</subsystem>

而且,还有套接字绑定组定义端口本身的标签:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="iiop" interface="unsecure" port="3528"/>
    <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>

NOTE:,你会注意到在 HTTPS 监听器中我们引用了 name="httpsServer" (这个值 'httpServer' 是任意的,可以设置为你想要的任何值),socket-binding="https" (这个值 'https' 必须与 https 匹配套接字绑定组中列出的套接字)和 security-realm="ApplicationRealm" (此值“ApplicationRealm”必须是您安装密钥库的任何安全领域)。

通过此配置,您应该发现端口 8443(安全)和 8080(不安全)都可用于访问 WildFly 的应用程序服务。端口 9990(不安全)仍然可以用于访问 Web 管理 UI,但 9993(安全管理 UI)则不能。

安全的管理控制台

我找到了这些说明,它们运行得很好。

http://www.mastertheboss.com/jboss-server/jboss-security/secure-access-to-jboss-wildfly-management-console http://www.mastertheboss.com/jboss-server/jboss-security/securing-access-to-jboss-wildfly-management-console

第一步是创建 SSL 密钥:

keytool -genkeypair -alias serverkey -keyalg RSA -keysize 2048 -validity 7360 -keystore server.keystore -keypass mypassword -storepass mypassword

NOTE:请记住,当要求输入名字/姓氏时,应使用您的服务器名称。

接下来,在standalone-XXX.xml 中配置 ManagementRealm 以包含密钥库。添加下面的服务器身份标签:

<server-identities>
    <ssl>
        <keystore path="server.keystore" relative-to="jboss.server.config.dir" keystore-password="mypassword" alias="serverkey" key-password="mypassword"/>
    </ssl>
</server-identities>

下面是完整的 ManagementRealm 的样子:

<security-realm name="ManagementRealm">
    <server-identities>
        <ssl>
            <keystore path="server.keystore" relative-to="jboss.server.config.dir" keystore-password="mypassword" alias="serverkey" key-password="mypassword"/>
        </ssl>
    </server-identities>
    <authentication>
        <local default-user="$local" skip-group-loading="true"/>
        <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>
    </authentication>
    <authorization map-groups-to-roles="false">
        <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>
    </authorization>
</security-realm>

接下来,管理接口standalone-XXX.xml 文件的部分使用 HTTP 套接字绑定,我们希望将其绑定到 HTTPS 套接字(具体来说,管理 https 套接字)。

<management-interfaces>
    <http-interface security-realm="ManagementRealm" http-upgrade-enabled="true">
              <socket-binding https="management-https"/>
    </http-interface>
</management-interfaces>

NOTE:查看接口如何引用 ManagementRealm 安全领域。我通过引用 ApplicationRealm 进行了尝试,没有创建单独的密钥库,并且它仍然以某种方式工作。最佳实践可能是不要为这两个目的重复使用该代码。

NOTE:下面是管理接口中引用的管理 https 套接字定义。

<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>

NOTE:对于任何套接字定义,您可以(如果需要)更改端口号。

将 HTTP 重定向到 HTTPS

在 web.xml 文件中,将以下代码块插入到 web-app 标记内。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>WEB_APPLICATION_NAME</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

NOTE:您需要将应用程序的名称放在 WEB_APPLICATION_NAME 处。我无法确定在所有情况下都会发生什么,但对我来说,如果部署的 war 文件是 MyApp.war,那么我将 MyApp 放在那里。

您可以使用 CONFIDENTIAL、INTEGRAL 或 NONE 作为传输保证。请注意以下网址:https://docs.oracle.com/cd/E19798-01/821-1841/bncbk/index.html https://docs.oracle.com/cd/E19798-01/821-1841/bncbk/index.html它将描述差异,但它也指出 CONFIDENTIAL 和 INTEGRAL 实际上是相同的。

安装该代码后,您就完成了。继续通过端口 8443 使用 https 进行测试,然后通过端口 8080 使用 http 进行测试。您会注意到,当您使用 http/8080 时,它会回复并且您的浏览器会切换到 https/8443。如果你像我一样不相信它,你可以卷曲它。

curl -vv -k -L -X GET http://localhost:8080/MyApp/rest/endpoint

您将看到类似于以下内容的输出,表明重定向正在运行:

在 DNS 缓存中未找到主机名
正在尝试 127.0.0.1...
连接到本地主机 (127.0.0.1) 端口 8080 (#0)
获取/MyApp/rest/端点 HTTP/1.1
用户代理:curl/7.35.0
主机:本地主机:8080
接受:/

HTTP/1.1 302 找到
连接:保持活动状态
X-Powered-By:Undertow/1
服务器 WildFly/9 未列入黑名单
服务器:WildFly/9
地点:https://localhost:8443/MyApp/rest/endpoint https://localhost:8443/MyApp/rest/endpoint
内容长度:0
日期:2015 年 9 月 4 日星期五 18:42:08 GMT

与主机 localhost 的连接 #0 保持不变
向此 URL 发出另一个请求:'https://localhost:8443/MyApp/rest/endpoint https://localhost:8443/MyApp/rest/endpoint'
找到主机本地主机的捆绑包:0x8d68f0
在 DNS 缓存中未找到主机名
正在尝试 127.0.0.1...
连接到本地主机 (127.0.0.1) 端口 8443 (#1)
成功设置证书验证位置:
CA文件:无
CApath:/etc/ssl/certs
SSLv3、TLS 握手、客户端问候 (1):
SSLv3、TLS 握手、服务器问候 (2):
SSLv3、TLS 握手、CERT (11):
SSLv3、TLS 握手、服务器密钥交换 (12):
SSLv3、TLS握手、服务器完成(14):
SSLv3、TLS 握手、客户端密钥交换 (16):
SSLv3、TLS 更改密码、客户端问候 (1):
SSLv3、TLS握手,完成(20):
SSLv3、TLS 更改密码、客户端问候 (1):
SSLv3、TLS握手,完成(20):
使用 ECDHE-RSA-DES-CBC3-SHA 的 SSL 连接
服务器证书:
主题:C=US; ST=未知; L=未知; O=组织; OU=未知; CN=本地主机
开始日期: 2015-09-04 15:23:06 GMT
过期日期: 2016-09-03 15:23:06 GMT
发行人:C=US; ST=未知; L=未知; O=组织; OU=未知; CN=本地主机
SSL 证书验证结果:自签名证书 (18),无论如何都要继续。
获取/MyApp/rest/端点 HTTP/1.1
用户代理:curl/7.35.0
主机:本地主机:8443
接受:/

HTTP/1.1 200 禁止
连接:保持活动状态
X-Powered-By:Undertow/1
服务器 WildFly/9 未列入黑名单
服务器:WildFly/9
内容类型:application/json
内容长度:42
日期:2015 年 9 月 4 日星期五 18:42:08 GMT

与主机 localhost 的连接 #1 保持不变

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

Wildfly 9 http 转 https 的相关文章

  • 为什么私有辅助方法仍然可以在视图中访问?

    另一个 为什么会这样 的问题 我注意到私有辅助方法仍然可以在视图中访问 为什么 有没有办法防止这种情况 例如 当具有只能从另一个助手中调用的助手方法时 帮手是混合在一起的模块 http www ruby doc org docs Progr
  • 如何使用 HTTPS 云前端后面的 AWS Amazon 云前端将非 WWW 转发到 WWW

    我已经将 Cloud Front 设置为将所有调用重定向到 HTTPS 协议 现在我想将 非www 转发到www 就当前设置而言 我怎样才能实现这一目标 我尝试了下面的方法 但没有成功 因为该方法没有考虑 HTTPS 重定向 https w
  • HTTPS 网站上的 ShareThis 按钮不可点击

    我已将 共享此 按钮添加到我的安全站点 现在单击它们时会产生错误 下面提到了错误 以前有人遇到过这个问题吗 阻止加载混合活动内容 http w sharethis com button buttons js http w sharethis
  • 有没有办法测量 Java (Servlet) I/O 流量?

    我尝试做的是使用以下代码实现 servlet 过滤器 int up request getContentLength if HttpServletRequest request getQueryString null up Math max
  • Spring Security (3.2.5) HTTP POST 身份验证后不转发到原始请求

    我有一个示例 Spring MVC 应用程序 由 Spring security Spring 版本 4 0 1 RELEASE Spring security 3 2 5 RELEASE 保护 当我作为未经身份验证的用户发送 HTTP G
  • 从express.js 中删除所有标头

    我正在创建一个页面 其中有一些数据可以由另一个设备解析 我曾经使用 php 执行此操作 但现在将其移至 Node js 我需要从页面中删除所有标题 这样我就只有我的输出 此输出是对 GET 请求的响应 此刻我有 HTTP 1 1 200 O
  • Apache HTTP localhost 在 macOS Monterey 上随机花费 5 秒,但在 HTTPS 上速度很快

    我尽可能地等待 但最终不得不从莫哈韦升级 我知道有些东西会不必要地损坏 当然确实如此 较大的文件 超过 100k 随机需要 5 秒才能加载 它并不总是相同的文件 也不是每次都相同 并且它只发生在 HTTP Apache 中 尝试过端口 80
  • Jsoup http 日志记录

    有没有办法记录http请求和响应 我们假设以下请求 Connection Response res Jsoup connect LOGIN URL HERE data user USER pass PASS method Connectio
  • .htaccess 路由到服务器上的子目录?性能/加载时间

    我想知道是否可以使用 htaccess 文件将我的域直接路由到服务器上的子目录 我从常规虚拟主机提供商处购买了虚拟主机软件包 其中我的domain com 连接到我的服务器的根目录 我想知道是否可以以某种方式将 htaccess 文件上传到
  • 如何在没有 (L)GPL 库的情况下在 Python 中创建双重身份验证 HTTPS 客户端?

    客户端和服务器都是内部的 各自都有一个由内部CA签名的证书和CA证书 我需要客户端根据服务器拥有的 CA 证书来验证服务器的证书 它还应该将其证书发送到服务器进行身份验证 The urllib2手册说不执行服务器身份验证 PycURL是一个
  • GET 和 POST 方法的单独 Flask 路由

    在 Flask 中定义路由时 最好的做法是使用由多个 HTTP 方法定义的单个路由 并在该单个路由中使用显式逻辑处理不同的 HTTP 方法 例如 app route api users methods GET POST def users
  • 避免 IE 中因背景图像而出现“混合内容”警告的具体规则是什么?

    这与SSL 和 CSS 背景图像导致的混合内容 https stackoverflow com questions 1548551 ssl and mixed content due to css background images但这个问
  • 您可以从 AuthorizeAttribute 返回 HTTP 响应而不引发异常吗?

    我在各种控制器上使用 AuthorizeAttribute 可能需要根据请求本身的某些属性返回 403 或 429 请求过多 我完全在自定义 OnAuthorization 实现中实现了它 然后在必要时抛出一个带有适当响应代码的新 Http
  • 证书中的主机名不匹配:<>!=<> WSO2 APIM

    我有一个 https 端点 我需要从 wso2 API 管理器访问它 使用 1 10 我已经将证书文件添加到 client truststore jks 文件中 但现在它给出了如下错误 hostname in certificate did
  • OkHttp如何获取Json字符串?

    Solution 这是我这边的一个错误 正确的方法是响应 body string 以外响应 body toString 我使用 Jetty servlet URL 是http 172 16 10 126 8789 test path jso
  • Nuxt.js 使用 https 调用服务器端 API 的问题

    当我使用 HTTP 时 我遇到 nuxt 服务器端 API 调用问题S 在客户端 一切都很好 当我通过链接在客户端切换页面时 API 可以工作 但是当我按下 Ctrl f5 并且数据将在服务器端预取时 实际上没有 API 调用 也没有提供数
  • HTTP部分上传、断点续传的标准方法

    我正在开发 http 客户端 服务器框架 并寻找处理部分上传的正确方法 与使用带有 Range 标头的 GET 方法进行下载相同 但是 HTTP PUT 并不打算恢复 据我所知 PATCH 方法不接受 Range 标头 有没有办法通过 HT
  • 如何在Delphi中下载一个非常简单的HTTPS页面?

    我尝试了在这里看到的代码 但它不适用于 HTTPS 我需要将此页面作为字符串下载 并在其上添加一些换行符 以便将信息按顺序放入 TMemo 中 怎么做 我尝试使用 Indy 但由于 SSL 问题而失败 我尝试了此页面的解决方案 如何将网页下
  • HTTP:为什么在 get 请求中发送用户名和密码是错误的?

    一般做法是 当您登录或执行其他需要您的用户名和密码的操作时 您将其发送到发布请求的正文中 此外 为了增加安全性 应使用 https 在 get 请求中 这些参数作为 URL 的一部分发送 但据我了解 在 https 中 正文和标头都是加密的
  • 从 HTTP 登录到 HTTPS

    我的网站默认使用 HTTP 我确实有一个启用 HTTPS 的证书 但只有其上的某些区域强制建立安全连接 登录是通过 Ajax 处理的 我想开始使用 SSL 即使请求来自 HTTP 我尝试强制请求的地址具有 HTTPS 并且它完美地回复 然而

随机推荐

  • GitLab CI、monorepo 和功能分支

    我在 GitLab 中有一个采用功能分支方法的 monorepo 我想要实现的是启动与包含已更改文件的目录关联的管道部分 所以我的 gitlab ci yml 看起来像 job1 stage build script only change
  • iOS 使用 Swift 行为解析 PFObject 子类

    我有一个奇怪的问题 我的子类化在我的所有视图控制器中都有效 除了一个 我已经导入了所需的所有内容 但是这一堂课给了我 调用中参数 className 缺少参数 我的子类 import Foundation import Parse clas
  • Android TextSwitcher 在设置文本后无法换行内容宽度

    当我设置文本时 我使用 TextSwitcher 来放置淡入 淡出动画 但是当文本更改时 按宽度换行内容会出现一些问题 以下是我的 TextSwitched xml
  • Laravel:生产数据的迁移和播种

    我的应用程序需要预先注册的数据集才能工作 因此 当我设置应用程序时 我需要将它们插入数据库 Laravel http laravel com 提出两种机制 数据库迁移 http laravel com docs migrations 它们允
  • 前 10000 个素数最有效的代码?

    我想打印前 10000 个素数 谁能给我最有效的代码 澄清 如果您的代码在 n gt 10000 时效率低下 那也没关系 代码的大小并不重要 您不能以任何方式对值进行硬编码 阿特金筛 http en wikipedia org wiki S
  • 如何通过 php 从文件中提取特定字符串(电子邮件)[重复]

    这个问题在这里已经有答案了 我有一个文本文件 其中包含有关组织专家的一些成员信息 现在我只想从中提取电子邮件地址 示例文件 email protected cdn cgi l email protection jhgvhdhf email
  • 整数区间内的哈希表键

    我不知道这是否可能 但我正在尝试创建一个哈希表 其中 Interval 是一个具有 2 个整数 长值 一个开始和一个结束的类 我想做这样的事情 Hashtable
  • 如何在 Jitpack 上使用 maven 发布 Kotlin 库的 KDoc?

    背景 经过大量的研究和尝试 并寻求帮助 我成功地在 Jitpack 上使用 maven 发布了一个私有的 Github 存储库 写为here https stackoverflow com a 67071394 878126 因此 目前我放
  • Spring 类加载应用程序上下文

    我有一个 Spring Web 项目 我需要在初始化应用程序上下文后加载一些类 因为这些类最终将在将来使用 因此 我尝试在使用前预加载它们以提高性能 怎么做 请帮忙 Thanks 要将一个类加载到 JVM 中 只需调用Class forNa
  • 修改对象的键而不创建新对象[重复]

    这个问题在这里已经有答案了 我有以下输入 foo 4 bar 3 我想修改这个对象的键以获得 x foo y 4 x bar y 3 是否可以修改对象而不创建新对象 可用 jQuery 是的 您只需添加新密钥并删除旧密钥即可 obj x f
  • 为什么我们不能像其他模式对象一样删除引用的类型

    When a Type尝试删除或替换有依赖项的情况下 oracle 会抛出以下错误 与其他模式对象 如过程 不同 在其他模式对象中 您删除一个对象 然后它就会被删除 并且依赖对象也会被删除invalid 我的两个问题是 1 为什么是Type
  • 在 Sqlite 中存储 NSMutableArray

    我有一个 NSMutableArray 其中包含多个 CGRect 的坐标和大小 我想将其存储到 sqlite 中 是否可以存储整个数组 或者我应该将 CGRect 手动存储在数据库中 UPDATE 这是我从数据库检索到的数据 62706c
  • 为什么原始数据类型可以在不包含 System 命名空间的情况下工作?

    我读到所有原语都属于System命名空间 如果我评论掉using System我预计我的程序中会出现构建错误 但它运行成功 为什么是这样 这是因为int是一个别名System Int32 并且由于 Int32 已经以其名称空间为前缀 即 完
  • 如何捕获 C 函数调用的 Haskell 回调函数中引发的 Haskell 异常?

    有没有什么好方法来捕获由c函数调用的haskell回调函数中引发的haskell异常 例如 让我有一个简单的 c 函数 它只调用给定的回调 void callmeback void callback callback 以及通过 ffi 使用
  • 在Linux和Windows机器上使用C++调度任务

    我正在开发网关模拟器应用程序 网关将视频流式传输到客户端 网关模拟器可以模拟 1000 个网关 用户可以发出命令 例如 1 小时后开始录制并录制长达 1 小时 或者可以流式传输视频5点钟 所以基本上安排了任务 该网关将在 Windows 和
  • 带 Y 组合器的列表函数没有递归,为什么?

    注意 这是一种家庭作业 而不是一种家庭作业 最终目标是拥有一个函数 该函数生成一组数字的幂集 以数字列表的形式提供给该函数 我有该函数的递归版本 但我现在需要找到一些方法来替换我拥有的解决方案中的每个显式递归函数 append mapm等
  • 64 位计算机上的 32 位程序不会因 NullReferenceException 而崩溃

    我有一段代码抛出一个NullReferenceException dataSource DataSource GetView 它抛出是因为dataSource is null GetView返回一个DataTable 但是 当在一台计算机
  • Ruby 中的一行 if 语句

    我有以下代码 if day gt 31 day 31 month April end 我可以把它写在一行中 而不是 if day gt 31 then day 31 and month April end 我试过这样 if day gt 3
  • 使用VideoJS播放器播放RTMP流

    我正在尝试玩RTMP流式传输VideoJS玩家 下面是我的代码
  • Wildfly 9 http 转 https

    我想将请求从 HTTP 重定向到 HTTPS 我正在使用 Wildfly 9 经过谷歌搜索后 我发现了以下内容 但它不起作用 我希望有人