小编pre*_*oid的帖子

列出另一个List <String>的<String>子集忽略大小写?

想象一下,我有以下列表

清单a-("One", "Two", "Three", "Four", "Five")

清单b-("oNe", "two", "THREE")

我想考虑b作为a(忽略案例)的一个子集.

现在我正在使用循环和一些像这样的lambda

boolean subset = true;                    
for(String bWord : b) {
   if(!a.stream().anyMatch(aWord -> aWord.equalsIgnoreCase(bWord))) {
     subset = false;
     break;          
   }
}
Run Code Online (Sandbox Code Playgroud)

是否有更短的方法可以用lambdas做到这一点?

java

4
推荐指数
2
解决办法
294
查看次数

针对不同url模式的不同过滤器

我有一个主要提供REST端点的Spring启动应用程序,通过令牌(在Authorization标头中发送)完成身份验证,我TokenAuthenticationFilterLogoutFilter设置安全上下文之前添加了自己的身份.

在创建管理控制台的过程中,我希望管理员身份验证与常规用户分开,因为我之间没有共享表,Admins并且Users由于多种原因,在数据库级别上我有以下内容user,user_token,admin,admin_token.所以为了实现这个目标,我想到了几个解决方案:

  1. 让当前TokenAuthenticationFilter处理用户/管理员令牌auth.然而,这需要:修改过滤器以确定它是基于url模式的管理员还是用户令牌(例如,如果是/admin/**,过滤器将知道要调用哪个服务)或者具有来自用户的管理员标头(即用户发送U-Auth标头,Admin发送A-Auth标头),过滤器将根据标头名称进行操作.这对我来说听起来都不好.
  2. 指定一组过滤器以应用每个网址模式,例如 /admin/**AdminTokenAuthFilter添加到链中,而任何其他模式将TokenAuthenticationFilter在链中具有旧模式 .这听起来比早期的方法好,但我很难实现它.我试图在我的FilterRegistrationBean内部注册我自己的WebSecurityConfigurerAdapter

例:

 @Bean
 public FilterRegistrationBean adminFilter(){
     FilterRegistrationBean filterRegBean = new FilterRegistrationBean();
     filterRegBean.setFilter(new AdminTokenAuthFilter());
     List<String> urlPatterns = new ArrayList<>();
     urlPatterns.add("/admin/*");
     filterRegBean.setUrlPatterns(urlPatterns);
     return filterRegBean;
 }
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但我不确定这是否是正确的做法我也关注一件事,我发现这会将过滤器添加到过滤器的弹簧originalChain中,而不是additionalFilters在我的WebSecurityConfigurerAdapter使用中 定期添加过滤器时似乎适用http.addFilterBefore(tokenAuthenticationFilter, LogoutFilter.class).我不想改变spring原始过滤器链,我宁愿在额外的过滤器链中使用我的自定义过滤器.有人可以详细说明吗?

  1. 创建两个单独的调度程序servlet并使每个调度程序监听特定的url模式,我想每个dispatcherServlet都有自己的安全配置.

任何人都可以分享一些关于这种情况下最佳方法的知识吗?

spring spring-security spring-boot

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

jar 外部的 ResourceBundle 文件

我有一个 spring boot 应用程序/resources/application.properties,部署时,application.propertiesjar 旁边有一个(及其里面的)。

在我使用的代码中的某个位置ResourceBundle.getBundle("application").getString("x"),但总是返回 jar 内的属性中定义的值。

我的目标是从外部文件中获取值(如果存在),如果不存在,那么我需要从 jar 内部获取值。就像默认的弹簧行为一样,但我无法实现这一点。

编辑:

您可以使用下面正确答案中的解决方案,也可以Environment通过自动装配并使用来依赖弹簧getProperty()

java configuration spring-boot

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

地理圆到矩形坐标

给定输入、中心纬度、中心经度和半径(以公里为单位),我想获取包含该圆的矩形的坐标(东北和西南纬度/经度)。

我应该自己编写方法吗?尽管我害怕不考虑某些事情,因为我的数学很生疏。或者我可以找到一个现成的java实现吗?我的项目中有谷歌地图 sdk,但我在那里找不到任何有用的东西。

java google-maps latitude-longitude

2
推荐指数
1
解决办法
905
查看次数

如果属性中未提供@Value,是否不会失败?

我导入一个具有一些带有@Value字段服务的依赖项。在我的Spring Boot应用程序中,我不使用这些服务,但仍然使用此依赖项中的其他一些类,现在,如果我运行应用程序,它将无法解析占位符而失败,例如

原因:java.lang.IllegalArgumentException:无法解析值“ $ {apn.authentication.token.teamId}”中的占位符“ apn.authentication.token.teamId”。

因此,要解决此问题,我必须在属性中定义值。我搜索了一个设置,以使我的应用程序不会因未知值而失败,但我找不到解决方法。

即使缺少值,是否可以让我的spring boot应用启动?还是应该排除不使用的类(如果这是唯一的选择,怎么办)?

java spring spring-mvc spring-boot

1
推荐指数
2
解决办法
1053
查看次数

将@RequestParam转换为小写

我有@RequestParam很多控制器需要强制读取为小写(例如@RequestParam String email)。除了前往每个端点并将参数的值设置为小写版本之外,还有更简单的方法吗?

我尝试的是创建一个过滤器,它传递一个HttpServletRequestWrapper重写getParameter并将其传递到链下的过滤器,但我发现与@RequestParam无关getParameter(),也许Spring在这里使用了反射?

有什么建议么?

spring spring-mvc spring-boot

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

Spinner中的TextView颜色

我想要的是旋转器的文本颜色在运行时应该是白色的,因为它在旋转器1和2中显示在旋转器内,并且旋转器列表的文本颜色应该是黑色,如图所示.

问题是我能够为前2个Spinners做这个但是没能为第3个和第4个Spinner做到这一点.

如果你可以看到第3和第4个微调器有值但是黑色.我不明白,如果它可能2个旋转器,那么你不是所有4.请帮助我.

在此输入图像描述 在此输入图像描述

这是我在运行时更改颜色的代码:

public class Text                  // class for changing the text color of spinner
{
    private TextView tv = null;
    Text(View spin_adptr)
    {

        tv = (TextView) spin_adptr.findViewById(R.id.textspin);
        tv.setTextColor(Color.WHITE);
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我所说的:

public void onItemSelected(AdapterView<?> parent, View arg1, int position,
        long arg3) {
    int id = parent.getId();
    Text text = new Text(spinner1);   //Change of color (Working)
            Text text1 = new Text(spinner3);  //Change of Color(ERROR)
            Text text2 = new Text(spinner4);  //Change of Color(ERROR)



    switch (id) {
    case R.id.spinner1:

        String b …
Run Code Online (Sandbox Code Playgroud)

android textview android-spinner

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