小编Cyr*_* N.的帖子

Java中的安全模板引擎是什么?

我正在寻找一个Java模板引擎,它禁止在模板中执行代码,只允许执行代码.

在一个完美的世界中,我将寻找相当于Jinja2(或Django模板引擎).基于Django,模板标签将在我创建时使用,但用户无法创建模板标签(通过执行代码).

我会在Play中实现它!框架.

谢谢你的帮助!

java django templates template-engine jinja2

5
推荐指数
1
解决办法
3295
查看次数

使用Paypal自适应支付使用PayKey的工作流程

我正在尝试使用新的Paypal API(自适应支付)实施支付系统.

到目前为止,我有这个工作流程:

  • 向Paypal发送请求: AdaptivePayments/Pay
  • 这会创建一个Pay请求,并返回一个有效3小时的payKey(来源)
  • 现在,我等待paypal通过IPN向我发送请求.什么时候,我会得到pay_key
  • 使用此pay_key,我将致电AdaptivePayments/PaymentDetails了解付款状态.

但我想知道,如果超过3个小时我该怎么办?(比如退款吗?)

那么肯定的方法是什么?

谢谢你的帮助!

paypal paypal-adaptive-payments paykey

5
推荐指数
1
解决办法
3872
查看次数

form().bindFromRequest() 与数组值

<select name="items" multiple>在前端有一个,form().bindFromRequest()在后端使用,然后使用 DynamicForm。

但这里有一个问题:

DynamicForm form = form().bindFromRequest();
form.field("items").value(); // Only return one value !
Run Code Online (Sandbox Code Playgroud)

如何获取所有提交的值?如果可能的话,不必经历request().body().asFormUrlEncoded().get("items")

playframework-2.0

5
推荐指数
1
解决办法
2533
查看次数

方法models.MyModel中操作数堆栈上的错误类型

这是我的模型文档:

@Entity
@Table(name = "documents")
public class Document extends Model {
    @Id
    public Long id;

    @Constraints.Required
    @Formats.NonEmpty
    @Column(nullable=false)
    public String document;

    public static Model.Finder<Long,Document> find = new Model.Finder(Long.class, Document.class);

    // Will return an absolute URL to this document
    public String getUrl() {
        return controllers.routes.Documents.display(document.toLowerCase()).absoluteURL(Http.Context.current().request());
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,它在编译时抛出了一个VerifyError异常,并且我发现唯一要避免它的是,对该行进行注释并将其替换为return null; =>不是很有效:/

这是该异常的堆栈跟踪:

Caused by: java.lang.VerifyError: Bad type on operand stack in method models.Document.getUrl()Ljava/lang/String; at offset 13
    at java.lang.Class.forName0(Native Method) ~[na:1.7.0_05]
    at java.lang.Class.forName(Class.java:264) ~[na:1.7.0_05]
    at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:69) ~[play_2.9.1.jar:2.0.2]
Run Code Online (Sandbox Code Playgroud)

这个错误是什么?如何在不丢失getUrl方法的情况下避免它?

谢谢你的帮助!

java-7 playframework playframework-2.0

5
推荐指数
1
解决办法
3203
查看次数

使用Mustache JS进行胶水/连接的Concat

我正在尝试使用Mustache显示一系列项目,我想用逗号分隔符显示它们.

这是我的对象:

{"items": [
    {"display": "Item 1"},
    {"display": "Item 2"},
    {"display": "Item 3"},
    {"display": "Item 4"}
]}
Run Code Online (Sandbox Code Playgroud)

这是我的Mustache JS模板:

{{#items}}{{display}}, {{/items}}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这将呈现为:

Item 1, Item 2, Item 3, Item 4, 
Run Code Online (Sandbox Code Playgroud)

我想删除最后一个",",因为它看起来很奇怪.

我尝试了函数,但是我得到了"{{items}}"文本,而不是数组items.

我能怎么做 ?

谢谢你的帮助!

javascript mustache

5
推荐指数
2
解决办法
1485
查看次数

为什么Ebean无缘无故地返回null?

使用Play Framework,我有一个这样的模型:

class MyModel extends Model {
    // Some columns

    @ManyToOne
    public OtherModel other;

    public OtherModel getOther() {
        return other;
    }
}
Run Code Online (Sandbox Code Playgroud)

出于某种原因我无法理解,如果我调用myModel.otherOR myModel.getOther()(myModel作为实例MyModel),我得到一个Null值,即使它应该返回OtherModel的实例!

而且,如果我将getOther()方法更改为:

public OtherModel getOther() {
    console.log (String.valueOf(other));
    return other;
}
Run Code Online (Sandbox Code Playgroud)

getOther() 返回预期的实例 OtherModel

我只想说......是...... WTF?

有人可以向我解释为什么,以及如何解决这种奇怪的行为?

谢谢 :)

ebean playframework-2.0

5
推荐指数
1
解决办法
2101
查看次数

把手,避免编译(忽略)模板的一部分?

有没有办法告诉Handlebar编译器忽略模板块.

我知道有\解决方案,例如:

\{{ is.ignored}}
Run Code Online (Sandbox Code Playgroud)

但有没有什么可以做同样的事情,但对于一个完整的块,如:

<script type="text/x-handlebars-template" id="my-template">
    <ul>
        {{#each items}}
            <li><a href="{{url}}" title="{{title}}">{{display}}</a></li>
        {{/each}}
    </ul>
</script>
Run Code Online (Sandbox Code Playgroud)

我相信拥有类似的东西会更好(而且更具可读性),{{#ignore}}{{/ignore}}而不是在\任何地方添加.

我试图用块帮助器找到一些东西,或者自己构建一些东西,但是我无法得到块内部内容的非编译版本.

javascript handlebars.js

5
推荐指数
2
解决办法
3231
查看次数

如何将.vue文件中的所有CSS代码放入一个.css文件中?

我正在启动VueJS,我从原始的Vue Loader示例开始了我的代码,并测试了运行情况npm run devnpm run build但还是出现了一个问题:是否有一种方法可以将组件中的所有css放在一个位置(如styles.min.css)。

我在我的package.json中添加了bootstrap作为依赖项,但是当我执行a npm run build操作时,只能在中找到build.js文件dist

谢谢您的帮助。

javascript node.js vue.js

5
推荐指数
1
解决办法
2424
查看次数

挣扎于utf-16编码/解码

我正在解析一个包含UTF-16编码字符串的文档.

我有一个包含以下内容的字节字符串:

my_var = b'\xc3\xbe\xc3\xbf\x004\x004\x000\x003\x006\x006\x000\x006\x00-\x001\x000\x000\x003\x008\x000\x006\x002\x002\x008\x005'
Run Code Online (Sandbox Code Playgroud)

转换为utf-8时,我得到以下输出:

print(my_var.decode('utf-8'))
#> þÿ44036606-10038062285
Run Code Online (Sandbox Code Playgroud)

前两个字符þÿ表示它是UTF-16BE的BOM,如维基百科上所示

但是,我不明白的是,如果我尝试这样的UTF16 BOM:

if value.startswith(codecs.BOM_UTF16_BE)
Run Code Online (Sandbox Code Playgroud)

这返回false.实际上,打印codecs.BOM_UTF16_BE不会显示相同的结果:

print(codecs.BOM_UTF16_BE)
#> b'\xfe\xff'
Run Code Online (Sandbox Code Playgroud)

这是为什么?我怀疑高端的一些问题,但不知道如何解决这个问题.

已经有一些提到如何在Stackoverflow上解码UTF-16(就像这个),他们都说一件事:解码使用utf-16和Python将处理BOM.

......但那对我不起作用.

print(my_var.decode('utf-16')
#> ??????????????????????
Run Code Online (Sandbox Code Playgroud)

但是使用UTF-16BE:

print(my_var.decode('utf-16be')
#> ??44036606-10038062285
Run Code Online (Sandbox Code Playgroud)

(没有删除bom)

并使用UTF-16LE:

print(my_var.decode('utf-16le')
#> ??????????????????????
Run Code Online (Sandbox Code Playgroud)

所以,由于一个我无法解释的原因,使用只.decode('UTF-16')对我不起作用.为什么?

UPDATE

原始源字符串不是我提到的那个,但是这个:

source = '\376\377\0004\0004\0000\0003\0006\0006\0000\0006\000-\0001\0000\0000\0003\0008\0000\0006\0002\0002\0008\0005'
Run Code Online (Sandbox Code Playgroud)

我使用以下方法转换它:

def decode_8bit(cls, match):
    value = match.group().replace(b'\\', b'')
    return chr(int(value, base=8)).encode('utf-8')

my_var = re.sub(b'\\\\[0-9]{1,3}', decode_8bit, source)
Run Code Online (Sandbox Code Playgroud)

也许我在这里做错了什么?

python utf-16

5
推荐指数
1
解决办法
250
查看次数

Python上的SSL问题

我在Python中有一个通过aiosmtp接受(E)SMTP请求的代码,但是由于我在Debian 10上推送了此代码,所以我遇到了一些以前没有的错误(并且我的代码没有更改):

[SSL:NO_SHARED_CIPHER]没有共享密码(_ssl.c:1056)

SSL握手失败协议:传输:<_SelectorSocketTransport fd = 11读取=轮询写入=>

SSLError: [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:1056)
  File "asyncio/sslproto.py", line 625, in _on_handshake_complete
    raise handshake_exc
  File "asyncio/sslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "ssl.py", line 763, in do_handshake
    self._sslobj.do_handshake()
Run Code Online (Sandbox Code Playgroud)

和:

关闭通知后[SSL:KRB5_S_INIT]应用程序数据(_ssl.c:2609)

数据接收协议中的SSL错误:传输:<_SelectorSocketTransport fd = 15读取=轮询写入=>

SSLError: [SSL: KRB5_S_INIT] application data after close notify (_ssl.c:2609)
  File "asyncio/sslproto.py", line 526, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "asyncio/sslproto.py", line 207, in feed_ssldata
    self._sslobj.unwrap()
  File "ssl.py", line 767, in unwrap
    return self._sslobj.shutdown()
Run Code Online (Sandbox Code Playgroud)

我认为这两个问题是相关的。

不幸的是,两个stacktrace没有显示与我的代码相关的任何内容,这使我很难更好地了解发生了什么,并且该异常与另一个异常(Python3)不相关。


这是我的软件包的版本:

uname …

python ssl python-3.x

5
推荐指数
1
解决办法
363
查看次数