我使用带有freemarker的spring作为模板引擎.Freemarker允许使用Jsp Taglibs,例如,通过添加安全性
<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] />
Run Code Online (Sandbox Code Playgroud)
到模板,允许我使用的例子
<@security.authorize ifNotGranted="ROLE_ADMIN">
whatever
</@security.authorize>
Run Code Online (Sandbox Code Playgroud)
但是,Spring/Freemarker找不到taglib,除非它们被添加到类路径中,所以我补充说
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
到我项目中的pom.xml.
但无论如何,无法找到标签!我必须将spring-security-taglibs.jar添加到WEB-INF/lib文件夹中,以便找到标签.
有人知道为什么必须将jar显式添加到lib文件夹中吗?在我看来,tomcat为什么不找到它们?
编辑@ddekany
谢谢.如果未将spring-security-taglibs.jar复制到WEB-INF/lib目录中,则堆栈跟踪如下所示
No mapping defined for http://www.springframework.org/security/tags
The problematic instruction: ---------- ==> assignment:
security=JspTaglibs["http://www.springframework.org/security/tags"]
[on line 12, column 1 in home.ftl] in user-directive content.main
[on line 8, column 9 in home.ftl] in user-directive layout.global
[on line 2, column 1 in home.ftl]
---------- Java backtrace for programmers: ----------
freemarker.template.TemplateModelException:
No mapping defined for http://www.springframework.org/security/tags at
freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:180) at
...
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的分组条形图,每个组有5组,每组4条。我使用了matplotlib文档中的示例,该示例如下所示:
import numpy as np
import matplotlib.pyplot as plt
ind = np.arange(5)
avg_bar1 = (81191,79318,57965,60557,14793)
avg_bar2 = (26826,26615,31364,31088,55472)
avg_bar3 = (36232,38038,38615,39014,40812)
avg_bar4 = (26115,25879,25887,28326,27988)
fig, ax = plt.subplots()
rects1 = ax.bar(ind, avg_bar1, 0.15, label='bar1')
rects2 = ax.bar(ind + 0.15, avg_bar2, 0.15, label='bar2')
rects3 = ax.bar(ind + 0.30, avg_bar3, 0.15, label='bar2')
rects4 = ax.bar(ind + 0.45, avg_bar4, 0.15, label='bar2')
plt.xlabel('Distributions')
plt.ylabel('ms')
plt.xticks(ind + 0.15, ('50/50', '60/40', '70/30', '80/20', '90/10'))
plt.legend()
plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)
问题
但是相应的其他组中的bar的某些值(例如,group1中的bar1和group2中的bar1,等等)彼此之间相差不大。
我想要的是
因此,我想添加线条以更清楚地看到每个组的趋势 …
当我使用 生成的证书时,如何连接到我的 elasticsearch 集群(TLS 安全)elasticsearch-certutil?
根据 ES 文档,这段代码应该可以做到这一点:
const client = new Client({
node: config.elastic.node,
auth: {
username: "elastic",
password: config.elastic.password
},
tls: {
ca: fs.readFileSync( "./share/es/certs/ca.crt" ),
rejectUnauthorized: false
}
})
Run Code Online (Sandbox Code Playgroud)
不幸的是,这给了我这个著名的错误:
ConnectionError: unable to verify the first certificate
Run Code Online (Sandbox Code Playgroud)
我已经通过 docker-compose 设置了 ES。总结一下,我做了以下事情:
elasticsearch-certutil使用 using命令通过以下方式生成证书cert:bin/elasticsearch-certutil cert --silent --pem --in config/instances.yml -out /certs/bundle.zip。instances.yml包含我的所有节点以及 kibana。bundle.zip包含所有证书和密钥以及 CA 的证书。
配置我的节点,docker-compose.yml以便它们可以读取生成的证书。例如,
...
- xpack.security.http.ssl.key=${ES_CERTS_DIR}/es01/es01.key
- xpack.security.http.ssl.certificate_authorities=${ES_CERTS_DIR}/ca/ca.crt
- xpack.security.http.ssl.certificate=${ES_CERTS_DIR}/es01/es01.crt
- xpack.security.transport.ssl.certificate_authorities=${ES_CERTS_DIR}/ca/ca.crt …Run Code Online (Sandbox Code Playgroud)