- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 friend 和 bidi 来包装资源处理程序?
我已成功让 oAuth 验证路由:
(defn auth-handler [request] (friend/authorize #{::user}
{:status 200
:body "a secret"}))
(def routes ["/" {true auth-handler}])
(def app (make-handler routes))
(web/run-dmc (-> app
var
(friend/authenticate
{:allow-anon? true
:workflows [(oauth/workflow
{:client-config client-config
:uri-config uri-config
:credential-fn credential-fn})]})
(wrap-resource "public")
(wrap-defaults site-defaults)
))
这适用于“/”路由,但我想确保某些资源在没有先授权的情况下无法访问。
这似乎可以通过 friend/wrap-authorize
函数实现:
我最接近的尝试在 auth 包装路由上工作,但在非/dev/路由上不匹配:
(def routes ["/" [["dev/" [[true (friend/wrap-authorize (resources {:prefix "dev/"}) #{::user})]]]
[true (resources {:prefix "public/"})]]])
(match-route routes "/dev/index.html")
=>
{:handler #object[cemerick.friend$wrap_authorize$fn__24411
0x2400d0be
"cemerick.friend$wrap_authorize$fn__24411@2400d0be"]}
;correct
(match-route routes "/index.html")
=>
nil
;not correct
我认为路由模式 [true (resources {:prefix "public/"})]
的匹配部分是错误的,因为当我将其更改为 :key
`index.html' 确实匹配。
如何将非/dev/* 路由匹配到公共(public)资源?
最佳答案
这里主要的问题是资源路由应该是
["" (resources {:prefix "public/"})]
空字符串而不是 true
。
文档确实指出:模式匹配后,路径的剩余部分将添加到给定的前缀。
但坦率地说,我认为这是非常令人惊讶的行为。
我在这里做了一个成功路由/index.html 的最小示例项目 https://github.com/timothypratley/bidi-resources
值得注意的是,请求/index.html2 会导致异常,这又完全不是我所期望的。我期待一个 404。o_O
我真的很喜欢 ClojureScript 中的 bidi,但到目前为止,我发现它在服务器端是一个艰难的过程……我了解为什么 true
不起作用的方法是覆盖用我自己的版本定义资源,打印出输入,并看到 :remainder
是空的。
关于oauth - 使用 bidi 包装资源处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35875008/
如何使用 friend 和 bidi 来包装资源处理程序? 我已成功让 oAuth 验证路由: (defn auth-handler [request] (friend/authorize #{::u
我有一些使用 PIL 的 Python 代码,可以将 UTF-8 字符打印到图像中。 我注意到,为了连接像阿拉伯语这样的 Bidi 脚本,相同的代码无法正确连接字符(仅选择初始形式,未使用中间形式和最
如您所知,有些语言是从右到左书写/阅读的,我们正在努力支持某些 RTL 语言。由于浏览器拥有的算法,在 html 中使用 dir="rtl"的 Web UI 完成了大部分工作。但是我在文本中遇到了这个
我在实现 BiDi 字符时遇到了挑战,因为在构建对象键期间阿拉伯字符被移动到不同的位置。 有人可以帮我理解行为和解决方案吗 因为我使用类似的东西来修改字符串,所以我得到了不良影响 最佳答案 您观察到的
我下载这个here ,运行它: python setup.py test 在我的 cmd 中,我有 python 2.7,但出现此错误: Traceback (most recent call las
我有一个用波斯语显示多行文本的标签 kv文件: : font_name: 'tabassom' FarsiLabel: text: set_text('
我正在使用 ckeditor 4 并希望允许我的客户使用 rtl 或 ltr 方向 - 但由于我要将输出作为电子邮件消息发送,我希望始终使用方向属性。 出于某种原因,如果我使用的是希伯来语或阿拉伯语版
我最近收到了我的应用程序的阿拉伯语翻译,但我想做的不仅仅是简单地替换字符串。我可以使用 Interface builder 重新布局大多数 NIB,但有一些事情我需要以编程方式完成。 Cocoa 中是
我正在使用 tkinter 开发一个 python GUI 应用程序,它以希伯来语显示文本。 在 Windows(10、python 3.6、tkinter 8.6)上,希伯来语字符串显示正常。 在
我在 gwt 中使用动态字符串 i18n。为了支持 BIDI,我需要知道语言环境是否为 RTL。 我无法使用 LocaleInfo.getCurrentLocale() 因为在我的情况下它不会返回区域
我正在尝试在复杂的 BiDi 应用程序中使用 paper-input 元素,我需要输入框在中具有特定的不同 unicode-bidi CSS 设置不同的设置。 我试图在包含 paper-input 元
Unicode Bidirectional override fails for Input Placeholders. 输入占位符的 Unicode 双向失败,下面是带有 html 和 CSS 的标
我想将一个元素放在另一个元素的左下角。我将 position:relative 给父级,position: absolute;底部:0; left: 0 给 child 。 问题是页面可以在ltr 或
我正在尝试使用 reportlab 生成报告,报告语言是阿拉伯语。但问题是 reportlab 不支持 BIDI(双向)显示,因为缺少 BIDI Algorithm Python 中的支持。经过大量谷
我正在使用 django 1.4 运行 python2.7。 我的 views.py 页面中有以下代码,它返回选择列表中的语言名称: python 代码:(views.py) available_la
我很难按照我的预期让 BiDi 字符串在 HTML 文本区域内工作。 这个测试字符串包含阿拉伯语和英语,加上由中性方向字符(、/、数字)组成的伪标签序列(、),应该继承他们的方向是由他们面前的强方向角
我正在使用飞碟 xhtmlrenderer 构建 pdf 文档。到目前为止一切正常——现在我们应该在 pdf 中生成阿拉伯语文本。Xhtmlrenderer 正在以相反的顺序呈现阿拉伯文本。 我在互联
我正在学习网络版 Clojure。我正在尝试在 Lein 应用程序中实现 Bidi 和 Ring。当我打开该网站时,出现 500 错误: HTTP ERROR: 500 Problem accessi
我正在学习网络版 Clojure。我正在尝试在 Lein 应用程序中实现 Bidi 和 Ring。当我打开该网站时,出现 500 错误: HTTP ERROR: 500 Problem accessi
任何人都可以帮助我开始使用 css-flip . 我已经阅读了他们的文档,但它似乎是针对专家用户的。我没有任何使用 Node.js 的经验。 我将如何运行下面的 CLI。 css-flip path/
我是一名优秀的程序员,十分优秀!