MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Xác thực với Spring Security + Spring data + MongoDB

Lớp dịch vụ

Bạn phải tạo một service riêng biệt triển khai org.springframework.security.core.userdetails.UserDetailsService và đưa nó vào bên trong AuthenticationManagerBuilder .

@Component
public class SecUserDetailsService implements UserDetailsService{

    @Autowired
    private UserRepository userRepository;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        /*Here add user data layer fetching from the MongoDB.
          I have used userRepository*/
        User user = userRepository.findByUsername(username);
        if(user == null){
            throw new UsernameNotFoundException(username);
        }else{
            UserDetails details = new SecUserDetails(user);
            return details;
        }
    }
}

Mô hình

UserDetails Cũng nên được thực hiện. Đây là POJO sẽ giữ cho người dùng được xác thực thông tin chi tiết trước Spring. Bạn có thể bao gồm đối tượng dữ liệu Thực thể của mình được bao bọc bên trong nó, như tôi đã làm.

public class SecUserDetails implements UserDetails {

    private User user;

    public SecUserDetails(User user) {
        this.user = user;
    }
    ......
    ......
    ......
}

Cấu hình bảo mật

Xác thực dịch vụ mà chúng tôi đã tạo trước đó và đặt nó bên trong AuthenticationManagerBuilder

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    SecUserDetailsService userDetailsService ;

    @Autowired
    public void configAuthBuilder(AuthenticationManagerBuilder builder) throws Exception {
        builder.userDetailsService(userDetailsService); 
    }
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhà điều hành đường ống tổng hợp MongoDB $ lt

  2. Thêm đối chiếu mặc định vào bộ sưu tập mongodb hiện có

  3. tôi có thể chuyển truy vấn mongodb dưới dạng một chuỗi trong php không

  4. cài đặt mongodb-10gen không thành công với apt-get

  5. MongoDb qua jndi