我试图在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) 我已经为我的项目实现了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 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,s2从strings列表将被所示newList.
<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 …
我正在使用 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) 我有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) 我试着写一个行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?
spring-boot ×3
java ×2
eslint ×1
hibernate ×1
java-stream ×1
javascript ×1
jpa ×1
list ×1
oauth-2.0 ×1
oracle ×1
oracle19c ×1
spring ×1
spring-mvc ×1
spring-test ×1
vue.js ×1