play Framework2:查明应用程序是否在 http 或 https 上运行

2023-12-19

我试图查明 play 2(使用 scala)应用程序是否在 http 或 https 上运行

我尝试使用routes.Application.index.absoluteURL(request),像这样

def chatUri(username: String)(implicit request: RequestHeader): String = {

  val uri = routes.Application.index.absoluteURL(request)

但我收到以下错误:

/home/sas/tmp/websocket-chat/app/controllers/Application.scala:51: overloaded method value absoluteURL with alternatives:
[error]   (secure: Boolean)(implicit request: play.api.mvc.RequestHeader)java.lang.String <and>
[error]   (play.mvc.Http.Request)java.lang.String
[error]  cannot be applied to (play.api.mvc.RequestHeader)
[error]     val rootUri = Uri(routes.Application.index.absoluteURL(request))

我尝试将 RequestHeader 转换为 Request,但出现以下错误

val rootUri = Uri(routes.Application.index.absoluteURL(request.asInstanceOf[Request[Any]]))

(secure: Boolean)(implicit request: play.api.mvc.RequestHeader)java.lang.String <and>
[error]   (play.mvc.Http.Request)java.lang.String
[error]  cannot be applied to (play.api.mvc.Request[Any])
[error]     val rootUri = Uri(routes.Application.index.absoluteURL(request.asInstanceOf[Request[Any]]))

知道我怎样才能实现它吗?


必须说我对在 Scala 中获取绝对 url 的问题感到惊讶,AFAIR 在 Java 中它工作得很好,无论如何......我怀疑它是否会帮助你确定协议(edit:正如@MariusSoutier 所写)

因为有没有内置的 SSL 支持 https://groups.google.com/forum/?fromgroups=#!topic/play-framework/-7zP0jV5T4U在 Play 2 中,您很可能在应用程序前面使用(或者应该使用)一些 HTTP 服务器,比如 Apache。有一些示例和帖子描述了该过程:

  1. 看一下题目:如何配置 PlayFramework2 以支持 SSL? https://stackoverflow.com/a/10758612/1066240Nasir 提供了一个将 Apache 配置为 Play 代理的示例
  2. 还有很好的描述将 Apache 配置为代理 http://www.nczonline.net/blog/2012/08/08/setting-up-apache-as-a-ssl-front-end-for-play/ (warning 帖子描述了 Play 1.x,但 Apache 部分是相同的)
  3. 最后你需要设置将转发的正确标头 https://serverfault.com/a/257643/118032到您的应用程序

因此,设置标题后(如第 3 点所示),您将能够在控制器中检查它:

def index = Action { request =>
    val proto = request.headers("X-FORWARDED-PROTO")
    Ok("Got request [" + request + "] with schema: " + proto )
}

或在 Java 控制器中相同:

public static Result index() {
    String proto = request().getHeader("X-FORWARDED-PROTO");
    return ok("Got request [" + request() + "] with schema: " + proto);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

play Framework2:查明应用程序是否在 http 或 https 上运行 的相关文章

  • 用作 MAMP 起始页 URL 的 index.* 文件在哪里?

    我试图了解 MAMP 如何管理 Apache Web 服务器 但我找不到index 用作 MAMP 起始页的文件 虚拟主机配置 httpd vhosts conf 不包括在内并且Applications MAMP htdocs仅包含我自己的
  • spring 类路径资源中的相对路径

    我有一堆 spring 配置文件 所有这些文件都位于各个子包的 META INF 目录下 我一直在使用如下所示的导入
  • 如何在play 2.0模板中格式化数字/日期?

    我在使用 play 2 0 模板系统时遇到了一些困难 我有一个方法返回 scala 中的 Int 我想使用模式 对其进行格式化 我努力了 order itemCount format and order item count format
  • 日期/时间值的 Django URL 转换器

    我正在尝试使用 Django 内置的 URL 转换器将 URL 中的日期时间字符串转换为视图中的日期对象 如果我手动输入 URL 它们会按预期工作 但尝试为其生成 URL 时找不到匹配项 我的转换器很简单 from django utils
  • ASP.NET MVC - 路由 - 具有文件扩展名的操作

    有没有办法实现调用URLhttp mywebsite myarea mycontroller myaction xml这基本上是 假 请求文件 但结果将是一个为动态创建的文件提供服务的操作操作 我试过这个 context MapRoute
  • 如何从 Grails 应用程序的 URL 中删除应用程序名称?

    我有一个应用程序在这样的 URL 上运行 http myapp mydomain com myapp http myapp mydomain com myapp 我不想要 myappURL 中的部分 那么如何去掉应用程序名称呢 我只想 ht
  • 为什么 window.location 无法加载新页面?

    这段代码以前可以工作 但现在不行了 var url myurl id id phase phase window location url 使用 IE 开发工具栏 我已经验证 url 具有有效的 url 并且 window location
  • 如何使用 wampserver 在本地系统上将 URL 从“localhost”更改为其他内容?

    在 Windows 计算机上 有一个系统在本地 wampserver 上运行 但当应用程序在 localhost 上运行时 URL 却另有说明 虽然我希望基于目录结构的 URL 是这样的 http localhost pro include
  • 无法使用前导 ../ 在顶级目录之上退出

    我有一个 asp net 网站 我们有管理区域 其中的登录页面仅供管理员使用 并且所有网站都允许所有人使用 当我收到此错误时 我需要询问如何为其定义正确的安全配置 Cannot use a leading to exit above the
  • PHP preg_replace - www 或 http://

    真正坚持看似简单的事情 我有一个聊天框 喊叫框 其中可能输入任意 URL 我想找到每个单独的 URL 用空格分隔 并将其包装在标签中 例子 Harry you re a http google com http google com wiz
  • ZF2 - 从路线生成 URL

    我无法弄清楚在 zend 2 中从我想要的任何地方生成 Url 我得到了动作和控制器 所以我尝试这个 this gt url myControllerName array action gt myActionName 但这返回一个对象 我只
  • URL 中的 %2C 是什么?

    在 URL 中 什么是 2C编码的含义及其用途是什么 查看http www asciitable com http www asciitable com 看着那 这Hx 十六进制 列 2C映射到 任何不寻常的编码都可以通过这种方式检查 Hx
  • 对 URL 进行编码 C#

    所以我有一个看起来像这样的 URL http www test com folder1 id 3 但基本上 当他们单击按钮时 我想在 URL 栏中显示与该 id 关联的值的名称 例如 id 3 是名为 Rollex 的手表 所以我想要读取
  • 从 URL 获取页面内容?

    我想通过以下代码从 URL 获取页面内容 public static String getContentResult URL url throws IOException InputStream in url openStream Stri
  • 使用 Python 从网站下载所有 pdf 文件

    我遵循了几个在线指南 试图构建一个可以识别并从网站下载所有 pdf 的脚本 从而避免我手动执行此操作 到目前为止 这是我的代码 from urllib import request from bs4 import BeautifulSoup
  • 如何通过 javascript 和 ajax 调用 Scala 中的方法?

    我不知道我的标题是否有点误导 但这是我真正需要帮助的 我正在获取这个网址 get fb login fbEmail function data console log data 这是我的路线 GET fb login email prese
  • 如何使用play框架上传多个文件?

    我在用play framework 2 1 2 使用java我正在创建视图来上传多个文件 我的代码在这里 form action routes upload up enctype gt multipart form data
  • 合并 url 中的 2 个输入值

    我有这样的形式
  • 将查询字符串添加到 Ajax url 调用

    我想知道当我们调用 Jquery Ajax 时是否可以将查询字符串与 URL 一起传递 例子 ajax type POST url index php task addNewInfo data regForm serialize dataT
  • PHP 中的encodeURI() ?

    PHP 中是否有一些不编码的encodeURI 函数 我现在用这个 function encodeURI url http php net manual en function rawurlencode php https develope

随机推荐