gpt4 book ai didi

java - 使用 Spring Boot 的 https url 中的用户名和密码

转载 作者:行者123 更新时间:2023-11-28 22:15:34 28 4
gpt4 key购买 nike

我需要使用这样的 url 访问我的 spring boot 应用程序: https://username:password@IpServer/

我已经实现了https协议(protocol),但是这里的问题是如何添加用户和传递url

通常我使用下面的 url 访问我的应用程序: https://@IpServer/

我需要任何遇到过这个话题的人的帮助

最佳答案

我终于注意到 Spring boot 集成了这个 apache 选项,您应该在像这样修改应用程序属性(它也适用于 https 协议(protocol))之后为 spring security 添加安全依赖项:

# Define a custom port instead of the default 8080
server.port=443

#Define http server
#http.port=8080

# Tell Spring Security (if used) to require requests over HTTPS
security.require-ssl=true

# The format used for the keystore
server.ssl.key-store-type=PKCS12
# The path to the keystore containing the certificate
server.ssl.key-store=classpath:keystore.p12
# The password used to generate the certificate
server.ssl.key-store-password=keycertifpass
# The alias mapped to the certificate
server.ssl.key-alias=tomcat

在新类中添加基本身份验证后,这种身份验证负责添加用户并通过 URL :

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;


import com.project.exception.CustomAuthenticationEntryPoint;

@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {


@Autowired
private CustomAuthenticationEntryPoint unauthorizedHandler;

/** Use Basic Authentication **/

@Override
public void configure(HttpSecurity http) throws Exception
{
http.httpBasic().realmName("user").and().authorizeRequests()
.antMatchers("/**").hasRole("user")
.and()
.csrf().disable()
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler);
}

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth)
throws Exception
{
auth.inMemoryAuthentication()
.withUser("user").password(passwordEncoder().encode("pass")).roles("user");
}

@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}

}

对我来说,我已经为 authenticationEntryPoint 定制了错误处理,你可以根据需要添加它,也可以不定制就保留它,你是免费的。

我希望这个答案能帮助遇到同样问题的人。

谢谢大家

关于java - 使用 Spring Boot 的 https url 中的用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57056931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com