Oauth2 Java-Config JDBC

Habe ich ein Beispiel von oauth2 und rest mit inmemory-Authentifizierung und-Autorisierung für den Kunden und Eigentümer der Ressource. Ich bin versucht zu konvertieren, dass der JDBC Authentifizierung und Autorisierung von sans viel Erfolg. Ich bekomme immer Schlechte Anmeldeinformationen Fehler. Die Filter Sicherheit geht, ist ziemlich verwirrend für mich zum Debuggen:-)

Eingefügt ist mein java-code, die für verwendet jetzt eine inmemory-Authentifizierung Benutzer, aber nicht für den client. Das schema ist das gleiche wie diese.

Gibt es ein komplettes Arbeitsbeispiel mit oauth2.0 unter Verwendung von jdbc Authentifizierung und Autorisierung mit Java-Konfiguration irgendwo???

-------------------Code unten--

public class WebSecurityConfig extends OAuth2ServerConfigurerAdapter {
    private final static Logger logger = LogFactory.getLogger(WebSecurityConfig.class);



    private JdbcClientDetailsService jdbcClientDetailsService;
    private JdbcTokenStore jdbcTokenStore;
    private JdbcUserDetailsManagerConfigurer jdbcUserDetailsManagerConfigurer;
    //@formatter:off
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        OAuth2ServerConfigurer oAuth2ServerConfigurer = new OAuth2ServerConfigurer( ).tokenStore(jdbcTokenStore);
        http
            .requestMatchers()
                .and()
            .authorizeRequests()
                .antMatchers("/").permitAll()
                .anyRequest().authenticated()
                .and()
            .apply(oAuth2ServerConfigurer);
        http.setSharedObject(ClientDetailsService.class, jdbcClientDetailsService);

    }
    //@formatter:on

// //@formatter:off
// @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//       int validityInSec = Integer.parseInt(validtityInSeconds);

        auth
                .userDetailsService(new InMemoryUserDetailsManager(getUserDetails()));

    }
    //@formatter:on
//
    private  final Collection<UserDetails> getUserDetails() {
        List<UserDetails> userDetails = new ArrayList<UserDetails>();
        userDetails.add(new User("auction", "password", AuthorityUtils.createAuthorityList(
                "USER", "read", "write")));
        return userDetails;
    }


    @Autowired
    @Qualifier("oauth_details_ds")
    public void setDataSource(DataSource dataSource){
        jdbcClientDetailsService = new JdbcClientDetailsService(dataSource);
        jdbcTokenStore =  new JdbcTokenStore(dataSource);
//       try {
//           jdbcUserDetailsManagerConfigurer = new JdbcUserDetailsManagerConfigurer().dataSource(dataSource);
//       } catch (Exception e) {
//           logger.error("Bad code design: ",e);
//           e.printStackTrace();
//       }
    }



}
  • warum gehst du nicht konfigurieren von JDBC in Ihrem security.xml? die Dokumentation zeigt, wie es zu tun...
InformationsquelleAutor user3304825 | 2014-03-04
Schreibe einen Kommentar