小编ale*_*oid的帖子

JWE在Spring Security OAuth2 JWT中

是否可以将JSON Web加密(JWE)与Spring Security OAuth2 JWT一起使用?

现在我有以下内容JwtAccessTokenConverter:

@Bean
public JwtAccessTokenConverter accessTokenConverter() {
    JwtAccessTokenConverter converter = new JwtAccessTokenConverter() {

        @Override
        public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
            DBUserDetails user = (DBUserDetails) authentication.getUserAuthentication().getPrincipal();
            final Map<String, Object> additionalInfo = new HashMap<>();
            additionalInfo.put("user_id", user.getUser().getId());
            ((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo);
            OAuth2AccessToken enhancedToken = super.enhance(accessToken, authentication);
            return enhancedToken;
        }

    };

    converter.setSigningKey(jwtAccessTokenConverterSigningKey);

    DefaultAccessTokenConverter accessTokenConverter = new DefaultAccessTokenConverter();
    DefaultUserAuthenticationConverter userTokenConverter = new DefaultUserAuthenticationConverter();
    userTokenConverter.setUserDetailsService(userDetailsService);
    accessTokenConverter.setUserTokenConverter(userTokenConverter);

    converter.setAccessTokenConverter(accessTokenConverter);

    return converter;
}
Run Code Online (Sandbox Code Playgroud)

如何在这里添加JWE支持?

spring-security jwt spring-security-oauth2 jwe spring-oauth2

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

PreAuthorize批注中的Java 8 / Spring常量

在我的Spring Boot项目中,我定义了以下RestController方法:

@PreAuthorize("hasAuthority('" + Permission.APPEND_DECISION + "')")
@RequestMapping(value = "/{decisionId}/decisions", method = RequestMethod.PUT)
public DecisionResponse appendDecisionToParent(@PathVariable @NotNull @DecimalMin("0") Long decisionId, @Valid @RequestBody AppendDecisionRequest decisionRequest) {
    ....
    return new DecisionResponse(decision);
}
Run Code Online (Sandbox Code Playgroud)

现在,为了提供允许的授权机构名称,我使用以下代码构造:

@PreAuthorize("hasAuthority('" + Permission.APPEND_DECISION + "')")
Run Code Online (Sandbox Code Playgroud)

Permission.APPEND_DECISION常数在哪里:

public static final String APPEND_DECISION = "APPEND_DECISION";
Run Code Online (Sandbox Code Playgroud)

Java / Spring中是否还有任何更优雅的方式来定义这种代码?

java spring spring-boot

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

Spring 验证 - NULL 或有效的 url

在我的 Spring Boot 应用程序中,我有以下方法:

Decision create(@NotBlank String name, String url, @NotNull User author);
Run Code Online (Sandbox Code Playgroud)

现在,我直接在代码中检查以下条件:

if (!org.apache.commons.lang3.StringUtils.isEmpty(url) && !urlValidator.isValid(url)) {
    throw new IllegalArgumentException("Decision url is not valid");
}
Run Code Online (Sandbox Code Playgroud)

换句话说 -url参数可以是null有效的 url。

是否可以用现有的验证注释(例如 JSR-303)替换此代码?

java validation spring jsr bean-validation

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

Neo4j Cypher RegExp忽略大小写查询不适用于非拉丁字符

有时我必须通过RegExp忽略大小写查询搜索节点,它不适用于非拉丁字符.

比如我有一个 node.name property = ?? ?????????? ??????

如果我搜索

name =~ (?i).*?? ?????????? ??????.*
Run Code Online (Sandbox Code Playgroud)

一切都很好

但是如果是的话

name =~ (?i).*?? ?????????? ??????.*
Run Code Online (Sandbox Code Playgroud)

它不搜索节点.

顺便说一句 - 在拉丁字符上一切正常.

我做错了什么以及如何解决?

neo4j cypher

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

Spring Boot 2.0.0.M6和文件上传超过10 MB

到我的Spring Boot 2.0.0.M6 application.properties我添加了以下几行:

spring.http.multipart.max-file-size=100MB 
spring.http.multipart.max-request-size=100MB
Run Code Online (Sandbox Code Playgroud)

但是当我尝试上传到我的RestController 21MB文件时,它失败并出现以下异常:

Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (21112803) exceeds the configured maximum (10485760)
Run Code Online (Sandbox Code Playgroud)

我在使用Spring Boot打包的Embedded Tomcat上运行我的应用程序.

如何正确配置我的应用程序,以允许文件上传高达100MB?

spring tomcat spring-boot embedded-tomcat-8 spring-rest

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

以编程方式将扫描图像划分为单独的图像

为了提高 OCR 质量,我需要对扫描的图像进行预处理。有时我需要用几张图片(页面上的组件并且它们处于不同的角度 - 例如,一次扫描一些纸质文档)对图像进行 OCR,例如:

在此处输入图片说明

是否可以自动以编程方式将此类图像划分为包含每个逻辑文档的单独图像?例如使用 ImageMagick 之类的工具或其他工具?是否有针对此类问题的解决方案/技术?

ocr imagemagick image-processing image-preprocessing

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

Neo4j APOC 不允许用户“neo4j”执行写操作,FULL 限制为 READ

在我的 Neo4j 3.3.3 社区版上,我使用apoc-3.3.0.2-all.jarAPOC 插件,并且安装了以下 APOC 触发器:

CALL apoc.trigger.add('HAS_VALUE_ON_INDEX', 'UNWIND {createdRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->(ch:Characteristic) 
CALL apoc.index.addRelationship(r, keys(r)) RETURN count(*)', {phase:'after'})
Run Code Online (Sandbox Code Playgroud)

触发器安装成功,我用CALL apoc.trigger.list()命令验证了它。

现在,当我尝试通过以下查询对关系属性使用手动索引时:

CALL apoc.index.relationships('HAS_VALUE_ON','value:10000.32') YIELD rel, start AS d, end AS ch RETURN rel;
Run Code Online (Sandbox Code Playgroud)

Neo4j 返回以下错误:

Write operations are not allowed for user 'neo4j' with FULL restricted to READ.
Run Code Online (Sandbox Code Playgroud)

如何解除这个限制呢?

更新

我注意到第一次测试运行后 - 一切正常。使用以下查询进行第二次后续测试运行时,逻辑失败:

CALL apoc.index.relationships('HAS_VALUE_ON','value:10000.32') YIELD rel, start AS d, end AS ch RETURN d;
Run Code Online (Sandbox Code Playgroud)

但以下情况除外:

org.springframework.dao.PermissionDeniedDataAccessException: Error executing Cypher; Code: Neo.ClientError.Security.Forbidden; Description: …
Run Code Online (Sandbox Code Playgroud)

neo4j cypher neo4j-apoc

5
推荐指数
0
解决办法
1937
查看次数

Lucene查询数组和"IN","ALL IN","ANY IN"操作

我需要用Lucene查询语言实现以下谓词:

{param} IN optionIds
Run Code Online (Sandbox Code Playgroud)

{param}我的外部参数在哪里,optionIds是一个数组(或集合).

例如,我有以下文件optionIds:

"optionIds": [
    72,
    44,
    11,
    9,
    10
  ]
Run Code Online (Sandbox Code Playgroud)

以下Lucene谓词optionIds:72正确返回此文档.

但是如何根据以下值返回此文档:72,11,9

以下谓词optionIds:72, 11, 9不起作用,Lucene查询返回空结果.

请说明如何使用IN数组(集合)在Lucene查询语言中正确使用(模拟)操作.另外,请说明如何使用ALL IN/ANY IN.

lucene

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

Spring Batch 在集群环境中正确重启未完成的作业

我使用以下逻辑在单节点 Spring Batch 应用程序上重新启动未完成的作业:

public void restartUncompletedJobs() {

    try {
        jobRegistry.register(new ReferenceJobFactory(documetPipelineJob));

        List<String> jobs = jobExplorer.getJobNames();
        for (String job : jobs) {
            Set<JobExecution> runningJobs = jobExplorer.findRunningJobExecutions(job);

            for (JobExecution runningJob : runningJobs) {
                runningJob.setStatus(BatchStatus.FAILED);
                runningJob.setEndTime(new Date());
                jobRepository.update(runningJob);
                jobOperator.restart(runningJob.getId());
            }
        }
    } catch (Exception e) {
        LOGGER.error(e.getMessage(), e);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我正试图让它在双节点集群上工作。每个节点上的两个应用程序都将指向共享的 PostgreSQL 数据库。

让我们考虑以下示例:我有 2 个作业实例 -jobInstance1正在运行node1jobInstance2正在运行node2Node1jobInstance1执行过程中由于某种原因重新启动。后node1重新启动春季批处理应用程序尝试重新启动与上面给出逻辑未完成任务-它看到有2个未完成的作业实例-jobInstance1jobInstance2(这是正常运行的node2),并尝试重新启动它们。这种方式改为重新启动 only jobInstance1- 它将重新启动jobInstance1 …

high-availability spring-batch spring-boot

5
推荐指数
0
解决办法
1319
查看次数

Spring Kafka为主题配置分区数

是否有可能在Spring Kafka中为特定主题配置分区数量,以便能够有效地使用org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory.setConcurrency(Integer)方法来并行消费者关于此主题以加快消息消耗和处理?如果是这样,你能否展示一下如何做到这一点的例子.

apache-kafka spring-boot spring-kafka

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