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; | |
| } | |
| } |