Hi Maxim,

I think this isn't a good idea because the order in which the arguments are added to the save method is important - and what if you want to let one argument away? Then the rest would not used for their purpose.

Instead I would add another method save method that takes a Map with key value pairs (key are used to identify the values)
map.put("username","tom");
map.put("password","secret);
map.put("host","127.0.0.1");

the save method could be invoked internally with #save(map.get("username"),map.get("password"));

Another way:

Oracle uses system properties - (http://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html)
System.setProperty("org.apache.auth.username","tom");
System.setProperty("org.apache.auth.password","secret");
the save method could be invoked internally with #save(System.getProperty("org.apache.auth.username"),System.getProperty("org.apache.auth.username"));

kind regards

Tobias

Am 24.02.15 um 17:09 schrieb Maxim Solodovnik:
Hello All,

recently I have proposed the patch to reduce copy/paste while implementing
custom IAuthenticationStrategy.

Actually this interface have 2 methods which are not correlate to each other
String[] load();
void save(final String username, final String password);

in fact this is getter and setter but with different signatures
The change I would like to propose is to replace (in Wicket7)
void save(final String username, final String password);
with
void save(final String... credentials);

this will allow to easily store additional credentials (like domain) and
will not introduce the code break since previous calls will work as expected

What do you think?


Reply via email to