草庐IT

java - 多线程环境下的 Shiro

我理解Shiro的SecurityUtils.getSubject()工作的基本方式是它返回绑定(bind)到当前执行线程的主题。然而,这似乎与像Tomcat这样使用线程池来服务请求的servlet容器不一致。如果说Tomcat使用ThreadA来处理请求,则对SecurityUtils.getSubject()的任何调用都应该可以正常工作。但是,一旦选择了ThreadB,用户就会丢失,getSubject返回null并且isAuthenticated现在为false。即使用户仍处于登录状态也是如此。我已经在我的申请中确认了这一点。我正在使用ShiroCore1.2,并注意到当我浏览我

Java 文件名过滤器

我需要获取目录中具有特定扩展名(例如,.txt)的所有文件。我应该能够列出所有具有“.txt”和“.TXT”扩展名的文件(即,它应该不区分大小写)。我为此编写了以下类(class)。我应该在下面的类(class)中做出什么改变才能实现这一点?classOnlyExtimplementsFilenameFilter{Stringext;publicOnlyExt(Stringext){this.ext="."+ext;}publicbooleanaccept(Filedir,Stringname){returnname.endsWith(ext);}}好吧,我在accept()中尝试了n

Java Map,使用值属性进行过滤

我有一个TreeMapresMapnewTreeMap>();我想过滤并只保留值包含已知对的条目,比方说('mike'=>'jordan'),并避免如下所示的循环在我包含的库apache.commons和google.common中是否有一个过滤方法(这可能也会做一个循环,但至少它不那么冗长for(Entry>el:resMap.entrySet()){if(el.getValue().get("mike").equals("jordan")){//}} 最佳答案 您可以使用来自Guava的过滤器和Predicate接口(inter

java - 如何使用 Spring 的 Java Configuration 指定 Filter 执行顺序?

我的初始化程序中有以下代码:publicclassAppInitializerextendsAbstractAnnotationConfigDispatcherServletInitializer{@OverrideprotectedFilter[]getServletFilters(){DelegatingFilterProxyshiroFilter=newDelegatingFilterProxy("shiroFilter");shiroFilter.setTargetFilterLifecycle(true);returnnewFilter[]{newCorsFilter(),s

java - Tomcat 阀门设置

我认为我遇到了某种配置问题。我需要保护我实际的tomcat应用程序中的一个文件夹,可以从一定的IP范围。我以为这是serverfault,所以我发布了问题there.现在我不确定这是SO还是SF...尽管如此,我还是继续尝试自己完成它,并认为我需要设置org.apache.catalina.valves.RemoteAddrValve对于我的那个文件夹。可悲的是我无法到达我需要做的地方环境。web.xml,server.xml?两者都试过了,没有成功。谁能请帮我解决这个问题。蒂亚K 最佳答案 它应该放在你的里面server.xml中

java - 使用 Spring Security Filter 锁定除少数路由之外的所有内容

我们正在重新设计我们的产品以删除SpringSecurity中默认的“anonymousUser”行为,并希望锁定除少数端点之外的所有URL(通过过滤器安全性)。我们想不通的是如何指定“锁定除X、Y和Z之外的所有内容”我们的安全设置基本上归结为以下内容:@ConfigurationpublicclassSecurityConfigextendsWebSecurityConfigurerAdapter{@Overrideprotectedvoidconfigure(HttpSecurityhttp)throwsException{http//disableanonymoususers.a

java - 基于JTextField过滤JList

我的程序中有一个JTextField和一个JList。JList包含用户的联系人。我想根据JTextField上的文本过滤JList。例如,如果我输入“Mike”,它只会显示包括“Mike”在内的联系人。当用户清除JTextField时,它将重置过滤器。我知道我可以通过两个数组手动完成此操作。一个用于原始联系人,一个用于过滤后的联系人。当用户更改JTextField的值时,我会去搜索原始列表,更新临时列表并更新JList。我只是想知道是否有一些内置功能可以避免体力劳动。 最佳答案 执行此类操作的最佳方法是使用ListModel实现来

java - 如何使用模式/过滤器从目录中获取文件

我必须从PDF文件目录中获取文件。我有一个问题,我没有一个字段来连接所有数据以找到文件。这是一个例子:文件名:Comp_20120619_170310_2_632128_FC_A_8_23903.pdf文件名生成:Comp_20120619_--------_2_632128_FC_A_8_23903.pdf我没有字段"--------"来制作文件的完整名称。我正在尝试使用File.list但找不到正确的文件。 最佳答案 你可以定义一个FilenameFilter匹配文件名,如果文件名与您要查找的内容匹配,则返回true。Filed

java - 提交响应后是否可以从 servlet 过滤器转发或重定向?

逻辑是过滤器被命中,条件不为真,所以它通过过滤器链。响应提交后,过滤器被命中,条件现在为真(设置了请求属性)。进去执行转发,页面一直没有转发。我知道这与提交的响应有关,因为我测试了它在第一次到达链之前转发的不同逻辑,并且转发成功。publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{HttpServletRequesthttpServletRequest=(HttpServletRequest)request

java - 如何将 X-Content-Type-Options 添加到 tomcat 配置

我的客户要我修复MyWebApp的WebApp漏洞以下是有关MyWebApp漏洞的消息TheAnti-MIME-SniffingheaderX-Content-Type-Optionswasnotsetto'nosniff'ThischeckisspecifictoInternetExplorer8andGoogleChrome.Ensureeachpagesetsa>Content-TypeheaderandtheX-CONTENT-TYPE-OPTIONSiftheContent-Typeheaderisunknown虽然我已经找到了这个问题的一些解决方案,但我正在从tomcat配