Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Context initialization failed java.lang.NoSuchMethodError:
- org.springframework.beans.factory.annotation.InjectionMetadata.needsRefresh
- (Lorg/springframework/beans/factory/annotation/InjectionMetadata;
- Ljava/lang/Class;)Z
- Exception thrown from LifecycleProcessor on context close
- java.lang.IllegalStateException: LifecycleProcessor not initialized
- call 'refresh' before invoking lifecycle methods via the context: Root
- WebApplicationContext
- @Configuration
- @EnableWebSecurity
- @EnableGlobalMethodSecurity(securedEnabled = true)
- public class SecurityConfig extends WebSecurityConfigurerAdapter {
- @Autowired
- private UserDetailsServiceImpl userDetailsService;
- @Autowired
- public void registerGlobalAuthentication(AuthenticationManagerBuilder auth)
- throws Exception {
- auth.userDetailsService(userDetailsService);
- }
- @Override
- protected void configure(HttpSecurity http) throws Exception {
- http.csrf().disable()
- .authorizeRequests()
- .antMatchers("/resources/**", "/**").permitAll()
- .anyRequest().permitAll()
- .and();
- http.formLogin()
- .loginPage("/login")
- .loginProcessingUrl("/j_spring_security_check")
- .failureUrl("/login?error")
- .usernameParameter("j_username")
- .passwordParameter("j_password")
- .permitAll();
- http.logout()
- .permitAll()
- .logoutUrl("/logout")
- .logoutSuccessUrl("/login?logout")
- .invalidateHttpSession(true);
- }
- @Configuration
- @EnableWebMvc
- @ComponentScan("com")
- public class WebAppConfig extends WebMvcConfigurerAdapter {
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
- }
- @Bean
- public UserDetailsService getUserDetailsService(){
- return new UserDetailsServiceImpl();
- }
- @Bean
- public UrlBasedViewResolver setupViewResolver() {
- UrlBasedViewResolver resolver = new UrlBasedViewResolver();
- resolver.setPrefix("/pages/");
- resolver.setSuffix(".jsp");
- resolver.setViewClass(JstlView.class);
- return resolver;
- }
- }
- @Entity
- @Table(name="roles")
- public class Role implements GrantedAuthority {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private long id;
- private String role;
- public long getId() {
- return id;
- }
- public void setId(long id) {
- this.id = id;
- }
- public String getRole() {
- return role;
- }
- public void setRole(String role) {
- this.role = role;
- }
- protected Role(){}
- public Role(String name)
- {
- role = name;
- }
- @ManyToMany(mappedBy = "roles")
- Set<User> users;
- public Set<User> getUsers() {
- return users;
- }
- public void setUsers(Set<User> users) {
- this.users = users;
- }
- @Override
- public String getAuthority() {
- return getRole();
- }
- }
- @Entity
- @Table(name = "users")
- public class User {
- @Id
- @Column(name = "id")
- @GeneratedValue
- private Integer id;
- @Column(name = "username")
- private String login;
- @Column(name = "password")
- private String password;
- public User(String login, String password) {
- this.login = login;
- this.password = password;
- }
- public User() {
- }
- public String getLogin() {
- return login;
- }
- public void setLogin(String login) {
- this.login = login;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- @ManyToMany
- @JoinTable(name = "users_roles",
- joinColumns = {@JoinColumn(name = "user_id")},
- inverseJoinColumns = @JoinColumn(name = "role_id"))
- private Set<Role> roles;
- public Set<Role> getRoles() {
- return roles;
- }
- public void setRoles(Set<Role> roles) {
- this.roles = roles;
- }
- }
- public interface UsersRepository extends CrudRepository<User, Long> {
- User findByLogin(String username);
- }
- @Service
- public class UserDetailsServiceImpl implements UserDetailsService {
- @Autowired
- private UsersRepository userRep;
- @Override
- public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
- UserDetails loadedUser;
- try {
- User client = userRep.findByLogin(email);
- loadedUser = new org.springframework.security.core.userdetails.User(
- client.getLogin(), client.getPassword(),
- client.getRoles());
- } catch (Exception repositoryProblem) {
- throw new
- InternalAuthenticationServiceException(repositoryProblem.getMessage(),
- repositoryProblem);
- }
- return loadedUser;
- }
Add Comment
Please, Sign In to add comment