代码如下
package com.yjp;
import org.springframework.beans.factory.annotation.Autowired;
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 com.yjp.service.DemoService;
import com.yjp.service.UserDetailsServiceImpl;
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
private UserDetailsServiceImpl uds;
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests().antMatchers("/","/home").permitAll()
.anyRequest().authenticated().and()
.formLogin().loginPage("/login").permitAll().and()
.logout().permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{
//auth.inMemoryAuthentication().withUser("wangdan").password("123456").roles("USER");
auth.userDetailsService(uds);
}
}
package com.yjp.service;
import java.util.ArrayList;
import java.util.Collection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import com.yjp.model.Demo;
@Service
public class UserDetailsServiceImpl implements UserDetailsService{
@Autowired
private DemoService demoService;
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
Demo demo=demoService.findDemo(username);
Collection<SimpleGrantedAuthority> authorities = new ArrayList<>();
authorities.add(new SimpleGrantedAuthority("USER"));
return new org.springframework.security.core.userdetails.User(demo.getName(), demo.getPassword(), authorities);
}
}