我在网上尝试了一些例子,但没有一个例子符合我的需要。
我是唯一使用该项目的人,我想为所有控制器设置一个静态用户名密码。
如何使用基本的http auth?
为静态用户名/密码配置Spring启动答案 0 :(得分:0)
不确定您要构建的内容,但是您尝试过这个link,
它只是建议在下面的代码段,你有用户名/密码硬编码,用于基本身份验证。
您也可以将它们外部化为属性文件。
@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private AuthenticationEntryPoint authEntryPoint;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests()
.anyRequest().authenticated()
.and().httpBasic()
.authenticationEntryPoint(authEntryPoint);
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("john123").password("password").roles("USER");
}
}
答案 1 :(得分:0)
将以下内容放入private static final char[] hexArray = "0123456789abcdef".toCharArray();
public static String getSHA256(String data) {
StringBuilder sb = new StringBuilder();
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(data.getBytes());
byte[] byteData = md.digest();
sb.append(bytesToHex(byteData);
} catch(Exception e) {
e.printStackTrace();
}
return sb.toString();
}
private static String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for ( int j = 0; j < bytes.length; j++ ) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return String.valueOf(hexChars);
}
文件中:
application.properties
spring.security.user.name=<your username>
这将覆盖Spring Boot标准行为。如果您正在使用角色,您还可以根据自己的喜好设置spring.security.user.password=<your password>
。