我的项目和视图文件中只有以下三个类。没有配置文件。我试图在spring mvc app上配置spring security。
当我将其作为java应用程序运行并在浏览器中访问它时,它会要求输入密码。
我在相应的表单字段中输入用户名和密码,但它没有进行身份验证。
我检查了日志,发现了这一行
Using default security password: 75a836df-d369-4600-aad2-a50567ebd283
当ii使用它时,它成功登录了我。
我无法理解这一点。任何人都可以向我解释这个吗?我错过了吗 什么?
package hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("password").roles("USER");
}
}
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
package hello;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class GreetingController {
@RequestMapping("/greeting")
private String greeting(@RequestParam(value="name", defaultValue="World", required=false) String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
我问为什么它没有使用用户名登录我 “用户”和密码为“密码”
答案 0 :(得分:2)
我已经解决了这个问题。我必须改变
@EnableWebSecurity
到
@Configuration
@EnableWebMvcSecurity
在SecurityConfig
上。
实际上我正在学习Spring框架,我发现有这么多选项,有很多不同的方法可以在互联网上讨论。因此,会出现这样的问题。
答案 1 :(得分:0)
您应该在WebSecurityConfigurerAdapter的实现中覆盖方法configure
@Override
protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
authManagerBuilder.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
你所做的是实现的方法configureGlobal,它没有在WebSecurityConfigurerAdapter中呈现,而Spring对此方法一无所知。
答案 2 :(得分:0)
您可以使用以下代码,在您的代码配置方法中缺少
In:
avg_hr.head()
Out:
00:00:00 69.000000
00:00:01 93.750000
00:00:02 93.125000
00:00:03 92.900000
00:00:04 93.222222
00:00:05 93.222222
...
Name: bpm, Length: 253, dtype: float64