title: No signature of method BCryptPasswordEncoder.matches() is applicable for argument types: (java.lang.String, java.lang.String)
body: <p>I am having a problem when trying to match a password of a user using <code>spring-security-core:2.0-RC4</code> with <code>Grails 2.3.3</code>.</p>
  
  <p>I'm getting the following error when doing <code>passwordEncoder.matches(rawPassword, encodedPassword)</code></p>
  
  <pre><code>No signature of method grails.plugin.springsecurity.authentication.encoding.BCryptPasswordEncoder.matches() is applicable for argument types: (java.lang.String, java.lang.String)
  </code></pre>
  
  <p>I've checked the <a href="https://github.com/grails-plugins/grails-spring-security-core/blob/master/src/java/grails/plugin/springsecurity/authentication/encoding/BCryptPasswordEncoder.java" rel="nofollow">BCryptPasswordEncoder source</a> to search for clues and ended up in <a href="http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/crypto/password/PasswordEncoder.html" rel="nofollow">PasswordEncoder class definition</a>.</p>
  
  <p>The import in <a href="https://github.com/grails-plugins/grails-spring-security-core/blob/master/src/java/grails/plugin/springsecurity/authentication/encoding/BCryptPasswordEncoder.java" rel="nofollow">BCryptPasswordEncoder</a> looks wrong though as the new PasswordEncoder is in <code>org.springframework.security.crypto.password</code>.</p>
  
  <p>Doing <code>passwordEncoder.isPasswordValid(rawPassword, encodedPassword, null)</code> works (as in, there are no errors), but I don't know how to get the salt.</p>
  
  <p>Is this working properly? If so, how do I get the salt?</p>
  
  <p>EDIT:
  I tried using <code>NullSaltSource</code> too but it gives me the error:</p>
  
  <pre><code>Salt value must be null when used with crypto module PasswordEncoder
  </code></pre>