Spring Security – 忽略请求参数规则的Url

我有一个使用spring安全性的Web应用程序。 它使用元素来描述不同URL的访问filter。 默认情况下,这不会考虑URL的请求参数。 我需要根据请求参数设置url的自定义安全规则。 所以我做了以下事情: 1)我创建了一个bean后处理器类,它将为spring安全机制启用请求参数选项: . . . . . . 和代码: public class MySecurityBeanPostProcessor implements BeanPostProcessor { private Boolean stripQueryStringFromUrls = null; @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof DefaultFilterInvocationSecurityMetadataSource && stripQueryStringFromUrls != null) { ((DefaultFilterInvocationSecurityMetadataSource) bean) .setStripQueryStringFromUrls(stripQueryStringFromUrls.booleanValue()); } return bean; } // code stripped for clarity […]

关于java:从`String.class`得到`String .class`,如果`String.class`是“运行时类型”怎么办?

这是一个变量Class cls ,现在我想获得另一个组件类型为cls Array Class Object 。 例如,如果cls = String.class ,我想得到String[].class ; 如果cls = int.class ,我想得到int[].class ,我该怎么办? 你看,从String[].class获取String.class非常容易String[].class : Class arrayCls = String[].class; if(arrayCls.isArray()){ Class cls = arrayCls.getComponentType(); } 但我找不到简单的方法来做相反的事情。 这是一个可能的解决方案: Class clazz = String.class; Class arrayClass = Array.newInstance(clazz,0).getClass(); 请问有什么方法可以做到这一点吗?

是否有Porter2 stemmer的java实现

你知道Porter2词干分析器的任何java实现(或者用java编写的更好的词干分析器)吗? 我知道这里有一个java版本的Porter(不是Porter2): http://tartarus.org/~martin/PorterStemmer/java.txt 但在http://tartarus.org/~martin/PorterStemmer/上 ,作者提到Porter有点过时,建议使用Porter2,可在 http://snowball.tartarus.org/algorithms/english/stemmer.html 然而,我的问题是这个Porter2是用雪球写的(我之前从未听说过,所以对此一无所知)。 我正在寻找的是它的java版本。 谢谢。 非常感谢你的帮助。

奇怪的String.split(“\ n”)行为

我有一个.txt文本文件,包含一些行..我使用RequestBuilder对象加载包含,并使用words = String.split(“\ n”)拆分responseText; 但我想知道,为什么结果包含“\ n”部分..例如,我的文字: abc def ghi 结果是, words[0] = “abc\n” words[1] = “def\n” words[2] = “ghi\n” 任何帮助都非常感谢。 提前致谢。

如何通过另一个线程停止线程?

我在Java中遇到了一些线程,我有三个线程 – thread1,thread2和thread3。 它们在启动时正在做一些任务,我想通过thread1来阻止这两个线程。 我把thread1用于sleep(500) ,然后我停止两个线程,但两个线程的进程仍在运行。 你知道怎么做吗?

Java autoboxing和三元运算符疯狂

只花了几个小时调试这段代码: LinkedHashMap rsrqs = new LinkedHashMap(); Integer boxedPci = 52; Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : -1; 上面会产生一个NullPointerException。 以下代码不: LinkedHashMap rsrqs = new LinkedHashMap(); Integer boxedPci = 52; Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : Integer.valueOf(-1); 唯一的区别是用Integer.valueOf()包装-1。 一旦有人解释为什么这个代码的行为方式,我肯定我会打破我的前额..但有人可以向我解释为什么这个代码的行为方式:) – 编辑 第二个想法,我怀疑NPE来自rsrqs.get()返回null,我认为java在尝试解包成int之前,在装回一个Integer之前。 Integer.valueOf()强制Java执行unbox-box步骤。 故事的道德启示; 不要只是忽略Eclipse中的那些拳击警告;)

如何独立分割路径平台?

我正在使用以下代码来获取包含给定路径中所有子目录的数组。 String[] subDirs = path.split(File.separator); 我需要数组来检查某些文件夹是否在此路径中的正确位置。 这看起来是一个很好的解决方案,直到findBugs抱怨File.separator用作正则表达式。 似乎将Windows文件分隔符传递给正在构建正则表达式的函数是一个坏主意,因为反斜杠是一个转义字符。 如何在不使用File.separator的情况下以跨平台方式拆分路径? 或者这样的代码好吗? String[] subDirs = path.split(“/”);

将文本文件内容逐行存储到数组中

所有,我现在面临的问题是不知道将文本文件中的内容存储到数组中。 情况就像,文本文件内容: abc1 xyz2 rxy3 我希望将它们逐行存储到数组中,这可能吗? 我的期望是这样的: arr[0] = abc1 arr[1] = xyz2 arr[2] = rxy3 我尝试过类似的东西,但似乎对我不起作用。 如果有人能帮助我,真的非常感谢。 代码是: BufferedReader in = new BufferedReader(new FileReader(“path/of/text”)); String str; while((str = in.readLine()) != null){ String[] arr = str.split(” “); for(int i=0 ; i<str.length() ; i++){ arr[i] = in.readLine(); } }

从嵌套的JSON对象中检索值

我有JSON文件,我想解析。 JSON文件(“myfile”)的格式如下: { “LanguageLevels”: { “1”: “Początkujący”, “2”: “ŚrednioZaawansowany”, “3”: “Zaawansowany”, “4”: “Ekspert” } } 我想从语言级别中检索Key 2的值(ŚrednioZaawansowany)。 import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Iterator; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class JsonSimpleExample { public static void main(String[] args) { JSONParser parser = new JSONParser(); try { Object obj = parser.parse(new FileReader(“myfile”); […]

Java – 简短和铸造

我有以下代码片段。 public static void main(String[] args) { short a = 4; short b = 5; short c = 5 + 4; short d = a; short e = a + b; // does not compile (expression treated as int) short z = 32767; short z_ = 32768; // does not compile (out of range) test(a); […]