小编mat*_*eus的帖子

在Freemarker中添加Spring库以使用JSP Taglibs以确保安全性

我使用带有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)

security spring jsp freemarker taglib

9
推荐指数
2
解决办法
1万
查看次数

matplotlib:如何将多个条形与线组合

我有一个非常简单的分组条形图,每个组有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,等等)彼此之间相差不大。

我想要的是

因此,我想添加线条以更清楚地看到每个组的趋势 …

python linechart matplotlib bar-chart

3
推荐指数
2
解决办法
4424
查看次数

使用自行生成的证书从nodejs连接到elasticsearch时“无法验证第一个证书”

当我使用 生成的证书时,如何连接到我的 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。总结一下,我做了以下事情:

  1. elasticsearch-certutil使用 using命令通过以下方式生成证书certbin/elasticsearch-certutil cert --silent --pem --in config/instances.yml -out /certs/bundle.zipinstances.yml包含我的所有节点以及 kibana。bundle.zip包含所有证书和密钥以及 CA 的证书。

  2. 配置我的节点,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)

ssl node.js express elasticsearch docker

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