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?