Just a simple example of protecting some passwords via the Proxy Pattern
--
Just a simple example of protecting some passwords via the Proxy Pattern
--
package secure; | |
class LukeSkywalkerPassword implements Password { | |
@Override | |
public String getPassword() { | |
return "F33lTheF0rc3"; | |
} | |
} |
public class Main { | |
public static void main(String[] args) { | |
PasswordManager manager = new PasswordManager(); | |
manager.setUser(new User("Stormtrooper 1", 22)); | |
System.out.println(manager.getPassword()); | |
manager.setUser(new User("Luke Skywalker", 21)); | |
System.out.println(manager.getPassword()); | |
manager.setUser(new User("Tom Hanks", 55)); | |
System.out.println(manager.getPassword()); | |
} | |
} |
package secure; | |
public interface Password { | |
String getPassword(); | |
} |
package secure; | |
public class PasswordManager implements Password { | |
private User user; | |
public void setUser(User user) { | |
this.user = user; | |
} | |
@Override | |
public String getPassword() { | |
if (user.name.equals("Stormtrooper 1") && user.age == 22) { | |
return new Stromtrooper1Password().getPassword(); | |
} else if (user.name.equals("Luke Skywalker") && user.age == 21) { | |
return new LukeSkywalkerPassword().getPassword(); | |
} | |
return null; | |
} | |
} |
package secure; | |
class Stromtrooper1Password implements Password { | |
@Override | |
public String getPassword() { | |
return "St0rmTr00p3r"; | |
} | |
} |
package secure; | |
public class User { | |
String name; | |
int age; | |
public User(String name, int age) { | |
this.name = name; | |
this.age = age; | |
} | |
} |