小编pka*_*now的帖子

如何使用@PathVariable解析Spring Security中的参数名称?

我想使用@PreAuthorize注释来保护Spring REST控制器中的方法,使用方法参数,例如

@RequestMapping("/something/{myParam}")
@PreAuthorize("@security.check(#myParam)")
public String getSomething(@PathVariable("myParam") Integer myParam) {
  //...
}
Run Code Online (Sandbox Code Playgroud)

Spring Security需要一种在运行时发现param名称的方法.当编译类中没有调试符号时,需要添加一个特殊的注释@P或Spring Data的@Param.所以,该方法看起来像这样:

@RequestMapping("/something/{myParam}")
@PreAuthorize("@security.check(#myParam)")
public String getSomething(@PathVariable("myParam") @P("myParam) Integer myParam) {
  //...
}
Run Code Online (Sandbox Code Playgroud)

是否有可能以某种方式暗示Spring Security使用@PathVariable而避免使用像@P这样的其他注释?

根据文档读取,注释中的参数名称AnnotationParameterNameDiscoverer 可以自定义以支持任何指定注释的value属性.但是,我找不到有关如何自定义它的任何信息.

顺便说一句,我使用的是Java 7和Spring Security 3.2.9.

java spring spring-mvc spring-security

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

如何在没有拉取请求的情况下找到推送的提交?

在我的项目中,需要使用来自功能分支的拉取请求向主分支添加更改。目前,存储库配置为禁止直接推送到 master,但在过去是允许的。

是否可以在master没有拉取请求的情况下找到直接推送到 的提交?

git bitbucket pull-request

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

groovyc ant任务因fork ="true"而失败

当我在没有fork选项的情况下运行groovyc时,它运行正常.但是如果fork ="true",则会失败并显示错误消息:

Error: Could not find or load main class org.codehaus.groovy.ant.FileSystemCompilerFacade 
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

Ant任务:

<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpathref="test.path" />
<groovyc fork="true" srcdir="../myproject/src-test" destdir="${build.test.dir}">
   <javac debug="true" source="1.7" target="1.7" >
      <compilerarg value="-XX:-UseSplitVerifier"/>
   </javac>
</groovyc>
Run Code Online (Sandbox Code Playgroud)

编辑:test.path包含一个groovy jar: (...):/home/pkalinow/(..)/groovy-all-1.8.6.jar:(...)

ant groovy

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

在JSF中为表中的"title"属性转换日期

在JSF中是否可以转换日期值并将其置于"title"属性中?在类似的问题中,JSF转换为title属性的日期,有一个答案,它可以用JSTL完成fmt:formatDate,但不能在重复组件中完成,例如UIData.我需要在一个表(扩展的HtmlDataTable)中完成它.

例如,以下代码正确显示日期作为文本值,但不在title属性中:

<h:outputText class="yui-tip" title="#{task[col.attributeName]}" value="#{task[col.attributeName]}">
    <f:convertDateTime type="both" dateStyle="medium" timeStyle="short"   timeZone="#{userProfileBean.clientTimeZone}" />
</h:outputText>
Run Code Online (Sandbox Code Playgroud)

jsf date converter

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

为什么 IntelliJ IDEA 2021.1 需要 Android SDK 用于 gradle 项目?

将 IntelliJ IDEA 升级到版本 2021.1(终极版)后,它无法加载 gradle 项目。它显示一条消息:

The Jdk installation is invalid.
Selected Jdk location is C:/Program Files/Java/jdk-11.0.3.

Select a JDK from the File System
Download JDK 8
Run Code Online (Sandbox Code Playgroud)

问题是,当我单击“从文件系统中选择 JDK”时,会出现一个带有“Android SDK 位置”和“Android NDK 位置”的窗口。这些项目不是针对 Android 的,那么为什么 IDE 会要求提供 Android 库呢?以及如何修复它?

(操作系统:Windows 10)

java intellij-idea gradle

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

RESTful API - 批量操作的分块响应

我正在研究类似REST的API,它将支持某些资源上的批量操作.由于完成此类请求可能需要一些时间,因此我希望在分块响应中返回操作的状态.媒体类型应为JSON.如何使用JAX-RS?

(我知道有StreamingOutput,但它需要手动序列化数据.)

java rest json jax-rs chunked

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

为什么 CONTAINS 在 JCR-SQL2 中发现不相等的文本字符串?

使用 JCR-SQL2 查询时,我注意到CONTAINS操作符找到的节点与条件中的字符串不完全相同。

例子

以下查询:

SELECT * FROM [nt:base] AS s WHERE CONTAINS(s.*, 'my/search-expression')
Run Code Online (Sandbox Code Playgroud)

不仅会找到包含my/search-expression字符串的节点,还会找到带有像my/another/search/expression.

为什么查询不能只找到提供的确切字符串?如何更改以缩小结果范围?

这个问题旨在由我自己回答,用于知识共享 - 但可以随意添加您自己的答案或改进现有答案。

jcr jcr-sql2

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

Java/Eclipse:返回List casted Map.values()

我正在研究基于Java的Web应用程序,突然发现了一种我目前无法理解的行为.

假设我有以下代码:

...snip...
Map<Integer, Foo> map = new HashMap<Integer, Foo>();
...snip...

public List<Foo> getFoos() {
    return (List<Foo>)map.values();
}
Run Code Online (Sandbox Code Playgroud)

我知道你需要像新的ArrayList()那样实例化一个新的List,但我想知道为什么eclipse没有给我一个警告.

只有在运行代码时我才会获得ClassCastException.我很确定这不是eclipse的错误,因为编译器也没有这个代码的问题,但有人可以解释为什么你在运行这段代码时总是出错,但是IDE和编译器没有抱怨?

java eclipse classcastexception

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

Web服务器用于提供最大并发请求

我们正在制作HTTP Rest API服务器,我们希望它服务于大约300K并发请求.我们可以为此目的使用哪些好的Web服务器?关于他们的限制的一些信息.并发请求会很棒.

webserver tomcat jetty

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