小编Eni*_*iss的帖子

如何在access_token JWT中添加更多数据

我试图在JWT令牌中添加新字段,这实际上access_token是生成的grant_type=password.如果仅授予类型,我想添加更多字段password.

如果我实现自定义令牌增强器,它会在oauth login api的响应主体中添加新字段.但我只需要access_tokenJWT 内部的那些新领域.

例如:

解码时access_token,Object应该来自

{
  "user_name": "uuid",
  "scope": [
    "trust"
  ],
  "exp": 1522008499,
  "authorities": [
    "USER"
  ],
  "jti": "9d827f63-99ba-4fc1-a838-bc74331cf660",
  "client_id": "myClient"
}
Run Code Online (Sandbox Code Playgroud)

{
  "user_name": "uuid",
  "newField": [
    {
      "newFieldChild": "1",
    },
    {
      "newFieldChild": "2",
    }
  ],
  "scope": [
    "trust"
  ],
  "exp": 1522008499,
  "authorities": [
    "USER"
  ],
  "jti": "9d827f63-99ba-4fc1-a838-bc74331cf660",
  "client_id": "myClient"
}
Run Code Online (Sandbox Code Playgroud)

实现在登录的响应主体中CustomTokenEnhancer添加newField列表:

{
    "access_token": "jwt-access_token",
    "token_type": "bearer",
    "refresh_token": "jwt-refresh_token",
    "expires_in": 299999,
    "scope": …
Run Code Online (Sandbox Code Playgroud)

oauth-2.0 spring-boot spring-security-oauth2

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

Spring Security - 405请求方法'POST'不受支持

我已经为我的项目实现了Spring Security,但是当我尝试登录时,我获得了状态405.我已经添加了csrf令牌form.

这是我发送用户名和密码时收到的错误: HTTP Status 405 - Request method 'POST' not supported

春季版:4.0.2.RELEASED

<div class="login-form">
    <c:url var="loginUrl" value="/login" />
    <form action="${loginUrl}" method="post" class="form-horizontal">
        <c:if test="${param.error != null}">
            <div class="alert alert-danger">
                <p>Invalid username and password.</p>
            </div>
        </c:if>
        <c:if test="${param.logout != null}">
            <div class="alert alert-success">
                <p>You have been logged out successfully.</p>
            </div>
        </c:if>
        <div class="input-group input-sm">
            <label class="input-group-addon" for="username">
                <i class="fa fa-user"></i>
            </label>
            <input type="text" class="form-control" id="username"
                name="clientusername" placeholder="Enter Username" required>
        </div>
        <div class="input-group input-sm">
            <label class="input-group-addon" for="password"> …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

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

嵌套列表的集合

我正在尝试将Java 8功能用于我的嵌套列表.

我有一个对象列表.该对象具有列表字段.我需要获取该列表的值并将其添加到另一个列表中.

List<String> strings = new ArrayList<>();
strings.add("s1");
strings.add("s2");

List<Foo> foos = new ArrayList<>();
foos.add(new Foo(strings));
Run Code Online (Sandbox Code Playgroud)

我推出了这种方法 foos.stream().map(Foo::getStrings).collect(Collectors.toList());

如果我像这样设置我的新列表,这种方法有效:

List<List<String>> newList = foos.stream().map(Foo::getStrings).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

我想有一个newList像这样的: List<String> newList = ....;那么s1,s2strings列表将被所示newList.

java list java-stream

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

ES6意外的字符串连接

<template>
<label>Firstname: </label><input type="text" v-model="user.firstName">
    <br/>
    <label>Lastname: </label><input type="text" v-model="user.lastName">
    <h3>{{fullName}}</h3>
</template>

<script>
export default {
    name: 'homepage',
    data() {
      return {
        title: 'Hello',
        user: {
          firstName: 'name',
          lastName: 'surname',
        },
        showName: false,
        items: [
          {
            title: 'Item one',
          },
          {
            title: 'Item two',
          },
          {
            title: 'Item three',
          },
        ],
      };
    },
    computed: {
      fullName() {
        return this.user.firstName + ' ' + this.user.lastName;
      },
    },
  };
</script>
Run Code Online (Sandbox Code Playgroud)

我试图在fullName()函数中返回一个字符串值但是当我添加时+ ' ' + ....,我得到意外的字符串连接(prefer-template)错误.如果我回来this.user.firstName;就行了.我怎么回来this.user.firstName …

string-concatenation eslint vue.js

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

无法确定“oracle”的方言

我正在使用 Spring boot(2.3.5)、Oracle19c DB 和 Hibernate(5.4)。

我试图建立多数据源连接,但我不断收到方言错误Couldn't determine Dialect for "oracle"

在类路径资源 [org/springframework/boot/autoconfigure/data/jdbc/JdbcRepositoriesAutoConfiguration$SpringBootJdbcConfiguration.class] 中定义名称为“jdbcDialect”的 bean 创建时出错:通过工厂方法的 Bean 实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.springframework.data.relational.core.dialect.Dialect]:工厂方法“jdbcDialect”抛出异常;嵌套异常是 org.springframework.data.jdbc.repository.config.DialectResolver$NoDialectException:无法确定 org.springframework.jdbc.core.JdbcTemplate@2ba9ed19 的方言。请提供方言。

我基本上按照本教程来配置多个数据源。

application.properties

spring.datasource-primary.username=oracleprimary
spring.datasource-primary.password=oracleprimary
spring.datasource-primary.url=jdbc:oracle:thin:@//localhost:1521/orcl

spring.datasource-secondary.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource-secondary.username=oraclesecondary
spring.datasource-secondary.password=oraclesecondary
spring.datasource-secondary.url=jdbc:oracle:thin:@//localhost:1521/orcl
Run Code Online (Sandbox Code Playgroud)

主要配置:

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
        entityManagerFactoryRef = "primaryEntityManagerFactory",
        transactionManagerRef = "primaryTransactionManager",
        basePackages = {"com.foo.primary.repository"})
public class PrimaryDataSourceConfiguration {

    @Primary
    @Bean(name = "primaryDataSourceProperties")
    @ConfigurationProperties("spring.datasource-primary")
    public DataSourceProperties primaryDataSourceProperties() {
        return new DataSourceProperties();
    }

    @Primary
    @Bean(name = "primaryDataSource")
    @ConfigurationProperties("spring.datasource-primary.configuration")
    public DataSource primaryDataSource(@Qualifier("primaryDataSourceProperties") DataSourceProperties primaryDataSourceProperties) {
        return primaryDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build(); …
Run Code Online (Sandbox Code Playgroud)

oracle hibernate jpa spring-boot oracle19c

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

集成测试 - 无法打开 ServletContext 资源 /application/properties

我有2个.properties文件。一个是标准的,第二个是用于私人值的,例如电子邮件用户名、密码等......

集成测试抛出一个错误,说它无法打开 /application.properties

门户应用:

@SpringBootApplication(scanBasePackages = {"com.portal"})
@PropertySources({
        // global property file
        @PropertySource("application.properties"),
        // local property file that I store personal properties e.g.: mail username & password.
        @PropertySource("application-local.properties")
})
public class PortalApplication {

    public static void main(String[] args) {
        SpringApplication.run(PortalApplication.class, args);

    }
}
Run Code Online (Sandbox Code Playgroud)

如果我注释掉@PropertySources(),则测试运行。有没有办法在不发表评论的情况下运行集成测试@PropertySources()

错误:

java.lang.IllegalStateException: Failed to load ApplicationContext

    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:107)
    at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
    at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:242)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) …
Run Code Online (Sandbox Code Playgroud)

spring-test spring-boot

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

一行if..else if .. else语句

我试着写一个行if..elseif..else语句,但总是进去else if.

var x = "192.168.1.1";
x = x == ("google.com") ? ("true google.com") : (("yahoo.com") ? ("true yahoo.com") : ("192.168.1.1"));
console.log(x);
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?它为什么总是进去else if

javascript

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