小编lea*_*iro的帖子

用Spring Boot 2代替403而不是403

随着春天引导 1.5.6.RELEASE我能够发送HTTP状态代码401,而不是403在描述如果请求的uri没有认证如何让春天的安全响应未经授权(HTTP 401码),这样做:

public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //...
        http.exceptionHandling()
                .authenticationEntryPoint(new Http401AuthenticationEntryPoint("myHeader"));
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

使用org.springframework.boot.autoconfigure.security.Http401AuthenticationEntryPoint班级.

我刚刚升级到Spring Boot 2.0.0.RELEASE,发现不再有这样的类了(至少在那个包中).

问:Http401AuthenticationEntryPoint Spring Boot中 是否存在此类()?如果不是,那么在现有项目中保持相同行为以保持与依赖于此状态代码(401而不是403?)的其他实现保持一致的可能是一个很好的选择.

java spring spring-security http-status-code-401 spring-boot

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

Angular:forRoot/forChild方法用法?

我很惊讶没有确切的答案:

Root/forChild的方法是什么?

例如在RouterModule中:

Router.forRoot(routes)
Run Code Online (Sandbox Code Playgroud)

angular-ngmodel angular angular-router

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

ArrayList.sort()vs PriorityQueue

我需要支持比读取更多的插入并保持数据排序.哪个会表现更好:

使用PriorityQueue提供比较器

要么

每次插入后使用ArrayList和调用.sort()

.sort()每次打电话都感觉不对,但我无法说清楚原因.

java sorting algorithm arraylist priority-queue

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

何时使用 @NotNull 和 @Nullable IntelliJ 注释?

我刚开始使用那些 IntelliJ IDEA Java 注释,但我不明白什么时候应该使用它们,特别是因为 IDEA 大部分时间都能够推断它们。

你们遵守某种规则吗?我不希望看到每个参数或字段都用它们注释,代码可能会变得一团糟。

我知道这可以被认为是基于意见的,但我仍然想阅读答案。

java annotations intellij-idea

9
推荐指数
3
解决办法
4995
查看次数

为什么此JavaScript映射不是无限循环?

我正在学习JavaScript。我写了这段代码来学习map函数。但是后来我感到困惑,为什么为什么不连续映射它,因为每个映射序列都会将一个新元素推入数组。它不应该在映射过程中继续推动新元素吗?为什么map函数仅对原始的三个元素运行,而对新的推入元素不运行?

我试图在节点环境中对其进行调试,并且该arr变量处于关闭状态。我知道闭包是什么,但我无法理解这里发生了什么。

let array = [1, 2, 3];

array.map((element) => {
  array.push(10);
  console.log(element);
});
Run Code Online (Sandbox Code Playgroud)

我希望输出应该是 1,2,3,10,10,10,10,10,10,10,10......10

但是实际输出仅为1,2,3

javascript arrays closures array-push map-function

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

Weblogic 12c:Jersey的首选web-inf-classes和prefer-application-packages

我必须 在Weblogic 12c服务器(12.2.1)上使用两者(奇怪的是......)" prefer-web-inf-classes "和" web- to -application-packages"的weblogic.xml属性

它是基于Jersey 1.9的REST应用程序.*(Jersey 1.x JAX-RS RI)和Guice.

1.为什么要使用:prefer-web-inf-classes

如果你有多个WAR,你必须在war/lib的级别放置guice-jersey/guice的库,否则你会得到Multibindings Error.

它必须表明prefer-web-inf-classes为true. 这种方式正常!我试图以相同的方式使用prefer-application-packages和package(com.sun.jersey.guice.spi.container.servlet /com.google.inject.servlet等等),但没办法.

注意:无法在EAR级别排除此库.

2.为什么要使用:prefer-application-packages

要在Weblogic 12c(12.2.1)上使用Jersey 1.x JAX-RS RI,所以我必须指出以下包(Weblogic使用Jersey 2的其他方式,以及不同版本的Jackson库等)

如果以这种方式表示,它在Jersey 1.X上完美运行..我已分别探讨了两场战争,并且工作得很好......但是,请记住我的朋友我有两场战争......所以....

摘要

我不能同时使用这两个属性(在weblogic.xml上使用这两个属性部署错误..),但它需要:

  1. 对于Guice Filter的问题,需要将prefer-web-inf-classes设置为true,以便在war-lib级别使用guice-servlet.jar/jersey-guice.jar.
  2. 要使用Jersey 1.x,需要使用..... prefer-application-package

问题:如何将两者结合使用其中之一?

java guice guice-servlet weblogic12c jersey-1.0

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

与 TypeScript 反应:类型“{}”不可分配给类型

我在 React 中有一个组件,它显示基于 prop 的导航。当我尝试运行应用程序时,我无法弄清楚为什么会出现此错误:

(19,8): Type '{}' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<TableSystems> & Readonly<{ children?: ReactNode; }...'.
  Type '{}' is not assignable to type 'Readonly<{ todos: any; showNav: boolean; }>'.
    Property 'todos' is missing in type '{}'.
Run Code Online (Sandbox Code Playgroud)

我的组件看起来像这样:

import * as React from 'react'
import Navigation from '../components/Navigation'
import TableSystems from '../components/TableSystems'

class SystemTable extends React.PureComponent<{showNav: boolean }> {
  render(){
  return (

    <div >
    <div >
    <div className="navigationContainer">
    <Navigation {...this.props.showNav} className="sideMenu"/>
      <TableSystems/>
      </div>
    </div>
  </div>)
  } …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

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

Spring Core与xml配置中的自动装配冲突

Spring @Autowired和@Qualifier为参考

我们有以下示例可解决自动装配冲突:

public interface Vehicle {
     public void start();
     public void stop();
}
Run Code Online (Sandbox Code Playgroud)

有两个bean,CarBike实现Vehicle接口。

@Component(value="car")
public class Car implements Vehicle {

     @Override
     public void start() {
           System.out.println("Car started");
     }

     @Override
     public void stop() {
           System.out.println("Car stopped");
     }
 }

@Component(value="bike")
public class Bike implements Vehicle {

     @Override
     public void start() {
          System.out.println("Bike started");
     }

     @Override
     public void stop() {
          System.out.println("Bike stopped");
     }
}

@Component
public class VehicleService {

    @Autowired
    @Qualifier("bike")
    private Vehicle …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection

7
推荐指数
2
解决办法
415
查看次数

sdkman 挂钩将 /etc/ssl/java/cacerts 链接到当前使用的 Java SDK

Debian 有一个很好的机制来将所有常用的来自 Thawte、Let's Encrypt 等的 CA 证书以及本地安装的证书编译/usr/local/share/ssl成一个/etc/ssl/certs/java/cacertsJKS 文件。这通常被符号链接到$JAVA_HOME/lib/security/cacerts.

使用 sdkman,我在不同的非 Debian Java 版本之间切换,~/.sdkman/candidates/java/current/其中使用SDK 创建者提供的cacerts

是否有某种 post-inst 挂钩机制,我可以在切换 sdkman Java 版本时自动创建指向 Debian cacerts文件的符号链接?

java sdkman

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

在 Angular 8 项目中使用对象哈希会导致“无法读取未定义的属性‘加密’”错误

我有一个 Angular-CLI 项目,它利用对象哈希库从对象创建哈希。通常我会放

import * as objectHash from 'object-hash'

在我的一个组件文件的顶部,然后const hash = objectHash(obj)在我需要散列的任何地方执行。

我刚刚将我的项目升级到Angular 8,突然间,Angular 项目服务很好,但是当我运行生产构建时,我收到一个错误:Cannot read property 'crypto' of undefined.

这是因为 Angular 8 生成了不同的 JavaScript,为较新的浏览器<script type="module">和较旧的浏览器生成了一些包<script nomodule>。当脚本有 时type="module",显然this被区别对待 - 所以对象哈希库的引用this被破坏:https : //github.com/puleos/object-hash/issues/71

有没有人对我如何解决这个问题有任何见解?

我看到的潜在解决方案是:

  • 以某种方式导入对象哈希

  • 使用完全不同的浏览器兼容对象哈希库(我还没有找到)

  • 让 Angular-CLI v8 停止生成差异化 JS 并吐出老式包(我还没有找到解决方案)
  • 降级到 Angular 7

typescript webpack angular-cli angular object-hash

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