PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PSQLException :le serveur a demandé une authentification par mot de passe, mais aucun mot de passe n'a été fourni

Je suppose que vous n'injectez pas votre bean dans le Spring Container, alors utilisez quelque chose comme ceci :

@Bean
public DataSource dataSource() {
    String url = "jdbc:postgresql://localhost:5433/<DATABASE_NAME>";

    String username = <USERNAME>;
    String password = <PASSWORD>;

    return DataSourceBuilder
            .create()
            .driverClassName("org.postgresql.Driver")
            .url(url)
            .username(username)
            .password(password)
            .build();
}

Au fait, dans votre jdbcUrl, vous devez utiliser le DatabaseName, pas le TableName.

Remarque :Je pense qu'il est préférable de tirer parti du fait que Spring Boot a déjà tout configuré automatiquement, donc je vous suggère de faire quelque chose comme ceci :

@Configuration
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public class DatabaseConfig extends HikariConfig {
    @Bean
    public DataSource dataSource() {
        return new HikariDataSource(this);
    }
}

Et utilisez les propriétés suivantes :

spring.datasource.hikari.jdbcUrl=jdbc:postgresql://localhost:5433/blog
spring.datasource.hikari.username=user
spring.datasource.hikari.password=user
spring.datasource.hikari.driverClassName=org.postgresql.Driver

Vous pouvez consulter l'un de mes exemples de travail ici :https://github.com/vladucuvoican/simple-blog/blob/master/src/main/resources/application.properties