Tag: filter

StackOverflowError试图在Spring WebSecurityConfigurerAdapter中公开AuthenticationManager

我试图通过扩展WebSecurityConfigurerAdapter来创建一个Spring Security配置,基本上是这样的: @EnableWebSecurity @Configuration public class StackOverflowSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.authenticationProvider(myUsernamePasswordProvider()); auth.authenticationProvider(mySecurityTokenProvider()); super.configure(auth); } @Override @Bean public AuthenticationManager authenticationManager() throws Exception { return super.authenticationManagerBean(); } @Bean public MyPreAuthenticatedProcessingFilter myAuthenticationFilter() throws Exception { MyPreAuthenticatedProcessingFilter myAuthenticationFilter = new MyPreAuthenticatedProcessingFilter(); myAuthenticationFilter.setAuthenticationManager(authenticationManager()); return myAuthenticationFilter; } } 我看到了这个: SEVERE: Servlet.service() for servlet […]

filter映射中的无效

我有一个@POSTrest方法,我想为它做过滤,所以只有登录在应用程序中的人才能访问它。 这是我的@POST方法: @POST @Path(“/buy”) public Response buyTicket(@QueryParam(“projectionId”) String projectionId, @QueryParam(“place”) String place){ Projection projection = projectionDAO.findById(Long.parseLong(projectionId)); if(projection != null){ System.out.println(projection.getMovieTitle()); System.out.println(place); projectionDAO.buyTicket(projection, userContext.getCurrentUser(), place); } return Response.noContent().build(); } 这是我为这种方法编写的filter: @WebFilter(“rest/projection/buy”) public class ProtectedBuyFunction implements Filter { @Inject UserContext userContext; public void init(FilterConfig fConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) […]

使用java stream过滤谓词时记录filter的结果

场景是我创建了不同类型的filter,它们根据对象的属性过滤一些对象的列表。 因此,我创建了一个由每个filterinheritance的AbstractObjectFilter类。 AbstractObjectFilter.java public abstract class AbstractEventFilter { protected abstract Predicate isEligible(); public List getFilteredEvents(final List events) { return events.stream().filter(isEligible()).collect(Collectors.toList()); } } 所以现在每个filter都扩展了这个类并覆盖了isEligible(),并且在该函数中它根据其属性返回谓词。 例如: – MinNumOfPrizesFilter.java public class MinimumNumOfPrizesFilter extends AbstractEventFilter { private int minimumNumOfPrizes; public MinimumNumOfPrizesFilter(@NonNull int minimumNumOfPrizes) { this.minimumNumOfPrizes = minimumNumOfPrizes; } @Override protected Predicate isEligible() { return event -> event.getPrizeCount() >= minimumNumOfPrizes; […]

通过filename过滤filechooser

我学会了如何使用filefilter来使用filter。 FileFilter filter = new FileNameExtensionFilter(“JPEG file”, “jpg”, “jpeg”); 但我想用包含某些字符串的文件过滤我的filechooser,就像在文件名中包含“sample”一样。 只能选择具有这些字符串的文件,并且不能编辑此filter。 我该怎么做?

卡尔曼滤波器和内部状态变量的质量

我正在尝试为Android开发运动检测应用程序。 应用程序应该能够跟踪手机在空间中的运动并将其映射到计算机屏幕上的运动。 我正在使用3轴加速度计,因为数据非常嘈杂,我使用的是卡尔曼滤波器。 内部状态是6分量矢量[speed-x,speed-y,speed-z,accel-x,accel-y,accel-z],测量状态是3分量矢量[accel-x,accel-y,accel-z ]。 滤波器在测量值上运行良好,但速度仍然非常嘈杂。 现在我想知道这是正常行为还是我做错了,因为我对卡尔曼滤波器的理解非常基础。 我正在使用JKalman库并遵循状态转换矩阵(dt是1/15,这是近似的传感器刷新率) double [] [] A = {{1,0,0,dt,0,0},{0,1,0,0,dt,0},{0,0,1,0,0,dt}, {0,0,0,1,0,0},{0,0,0,0,1,0},{0,0,0,0,0,1}}; 我还建立了自己的协方差矩阵,其协方差是根据测试数据计算出来的。 这改善了加速度信号,但对速度没有影响。 目前我能够实现stdvar [0,0632041857 0,0607274545 0,0886326602]用于速度[x,y,z] [0,0041689678 0,004423822 0,0074808552]用于加速度[x,y,z]。 我对加速度信号非常满意,我想我无法改善它,但我希望提高速度信号的质量。

从通配符到正则表达式

我想允许两个主要的通配符? 和*来过滤我的数据。 以下是我现在正在做的事情(正如我在许多网站上看到的): public boolean contains(String data, String filter) { if(data == null || data.isEmpty()) { return false; } String regex = filter.replace(“.”, “[.]”) .replace(“?”, “.”) .replace(“*”, “.*”); return Pattern.matches(regex, data); } 但是我们不应该逃避所有其他的正则表达式特殊字符,比如| 或(等等?还有,也许我们可以保留?和*如果它们前面有一个\ ?例如,类似于: filter.replaceAll(“([$|\\[\\]{}(),.+^-])”, “\\\\$1”) // 1. escape regex special chars, but ?, * and \ .replaceAll(“([^\\\\]|^)\\?”, “$1.”) // 2. replace any ? […]

Java 8 Stream – 为什么filter方法没有执行?

我正在学习使用java流过滤。 但过滤后的流不会打印任何内容。 我认为过滤方法没有被执行。 我的过滤代码如下: Stream.of(“d2”, “a2”, “b1”, “b3”, “c”) .filter(s -> { s.startsWith(“b”); System.out.println(“filter: ” + s); return true; }); 没有编译错误,也没有例外。 有什么建议吗?

如何使用Java 8流和filter过滤嵌套循环?

如何使用java8流和filter过滤嵌套循环? 假设我有一个汽车List ( List ),每辆汽车都有一个Engines List ( List ),每个引擎都有一个List 。 在常规Java中,这种结构可以描述为: for(Car car : cars) { for (Engine engine : car.getEngines()) { for (Part part : engine.getParts()) { // … } } } 假设我将汽车列表初始化为: List cars = new ArrayList(Arrays.asList(new Car(), new Car(), new Car())); cars.get(0).setEngines(null); cars.get(1).setEngines(new ArrayList()); cars.get(2).setEngines(new ArrayList() {{ add(new Engine()); add(null); add(new Engine()); […]

Java 8 Stream API用于查找与属性值匹配的唯一对象

使用Java 8 Stream从集合中查找与Property值匹配的对象。 List objects = new ArrayList(); 人员属性 – >姓名,电话,电子邮件。 迭代人员列表并找到匹配电子邮件的对象。 看到这可以通过Java 8流轻松完成。 但那仍然会收回一个集合? 例如: List matchingObjects = objects.stream. filter(p -> p.email().equals(“testemail”)). collect(Collectors.toList()); 但我知道它总会有一个独特的对象。 我们可以做一些事情而不是Collectors.toList以便我直接得到实际的对象。而不是获取对象列表。

MVC拦截器与Spring安全filtervs其他东西……?

我在我的Web应用程序中使用Spring-MVC和Spring Security。 它包括用户注册页面和私人用户面板。 我现在设置了以下url模式: whatever/myapp/login用户登录 whatever/myapp/register?step=1开始注册 whatever/myapp/account/**私人区域视图(页面) 在注册后流程完成时显示的whatever/myapp/pending视图 whatever/myapp/blocked帐户被阻止的视图 如果注册失败, whatever/myapp/register/retry ,都允许重试 基本上,下面的这些URL应该要求用户身份validation,即需要登录: whatever/myapp/account/** (私人区域页面) whatever/myapp/pending (此页面有一个定时器设置为重定向到/ account / home) whatever/myapp/register/retry 使用Spring安全性非常简单。 但是,无论通过Spring安全性进行用户身份validation,私有区域页面都应该是可访问的,具体取决于用户的当前帐户状态(存储在我的数据库中)。 更具体地说:如果用户试图访问私有区域( /account/** )中的任何内容,则应根据状态向他显示相应的视图(重定向到适当的页面)。 我定义了这些状态: suspended – 与待审视图有关 enabled – 允许完全访问权限 disabled – 这里不相关 retry_allowed – 与重试视图有关 blocked – 与帐户被阻止的视图有关 目前,我有一个MVC拦截器设置到/account/** ,它检查用户状态,并重定向到适当的页面,但不知怎的,我觉得这不是真正理想或适当的解决方案,因为我面临奇怪行为,就像多个控制器调用一样…而且我不太确定何时在preHandle()方法中返回true / false 。 这是拦截器的代码片段: @Override public boolean preHandle( HttpServletRequest request, HttpServletResponse […]