GlassFish рдореЗрдВ рджреЗрд╢реА рд╕реБрд░рдХреНрд╖рд╛ рдХреНрд╖реЗрддреНрд░

рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдХреБрдЫ рдХрд╛рдо рд╣рдЯрд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рддреИрдпрд╛рд░ рддрдВрддреНрд░ рдХреЛ рд╕реМрдВрдкрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдореМрдЬреВрдж рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЧреНрд▓рд╛рд╕рдлрд╝рд┐рд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рддрдВрддреНрд░ рдХреЛ рддрдерд╛рдХрдерд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдерд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдбреАрдмреАрдПрдордПрд╕, рдПрд▓рдбреАрдПрдкреА, рдкреАрдПрдПрдо, рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рдпрдорд┐рдд рдкрдврд╝рдирд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡реЗ рд╣рдореЗрдВ рдЕрдкрдиреА рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╕реВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП LDAP, рдХреЗрд╡рд▓ рдПрдХ рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдХрд╕реНрдЯрдо рд╕реБрд░рдХреНрд╖рд╛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВред рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ AppservRealm рд╡рд░реНрдЧ (com.sun.appserv.security.AppservRealm) рдФрд░ рджреВрд╕рд░рд╛ рдХреНрд░рдорд╢: AppservPasswordLoginModule (com.sun.appserv.security.AppservPasswordLoginModule) рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИред Com.sun.appserv.security рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред * рдЖрдкрдХреЛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ / рдЧреНрд▓рд╛рд╕рдлрд╝рд┐рд╢ / рдореЛрдбреНрдпреВрд▓реНрд╕/security.jar рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
package ru.khmb.security; import com.sun.appserv.security.AppservRealm; import com.sun.enterprise.security.auth.realm.BadRealmException; import com.sun.enterprise.security.auth.realm.InvalidOperationException; import com.sun.enterprise.security.auth.realm.NoSuchRealmException; import com.sun.enterprise.security.auth.realm.NoSuchUserException; import java.util.Enumeration; import java.util.Properties; import java.util.Vector; public class Realm extends AppservRealm { private static final String PARAM_JAAS_CONTEXT = "jaas-context"; private static final String GROUP_ALL = "Authenticated"; @Override public void init(Properties properties) throws BadRealmException, NoSuchRealmException { String propJaasContext = properties.getProperty(PARAM_JAAS_CONTEXT); if (propJaasContext != null) { setProperty(PARAM_JAAS_CONTEXT, propJaasContext); } } @Override public String getAuthType() { return "KHMB Realm"; } @Override public Enumeration getGroupNames(String user) throws InvalidOperationException, NoSuchUserException { Vector vector = new Vector(); vector.add(GROUP_ALL); return vector.elements(); } } 


рджрд╛рдпрд░реЗ рд╡рд░реНрдЧ рдореЗрдВ, рдЖрдкрдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХрд╛рд░ (рдЖрдорддреМрд░ рдкрд░ рджрд╛рдпрд░реЗ рдХрд╛ рдирд╛рдо) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рдирд╛рдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдЬрд╛рдирдмреВрдЭрдХрд░ рдЬрд╛рд╡рд╛ рдИрдИ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВред
рддрджрдиреБрд╕рд╛рд░, рдпрд╣рд╛рдВ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рддрдВрддреНрд░ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдбреАрдмреАрдПрдордПрд╕ рд╕реЗред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ рдЬрд╛рдпрд╕-рд╕рдВрджрд░реНрдн рдпрд╣рд╛рдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

 package ru.khmb.security; import com.sun.appserv.security.AppservPasswordLoginModule; import java.util.Enumeration; import java.util.LinkedList; import java.util.List; import javax.security.auth.login.LoginException; public class LoginModule extends AppservPasswordLoginModule { @Override protected void authenticateUser() throws LoginException { if (!(_currentRealm instanceof Realm)) { throw new LoginException("Realm not KHMBRealm"); } Realm realm = (Realm) _currentRealm; authenticate(_username, _password); Enumeration enumeration = null; List<String> authenticatedGroups = new LinkedList(); try { enumeration = realm.getGroupNames(_username); } catch (Exception e) { throw new LoginException("Get groups exception"); } for (int i = 0; enumeration != null && enumeration.hasMoreElements(); i++) { authenticatedGroups.add((String) enumeration.nextElement()); } commitUserAuthentication(authenticatedGroups.toArray(new String[0])); } private static void authenticate(String login, String password) throws LoginException { try { LDAP.authenticate(login, password); } catch (Exception e) { throw new LoginException("Authenticate exception:" + e.getMessage()); } } } 

рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб (рдпрд╛ рдЕрдиреНрдп рд╡рд┐рд╡рд░рдг) рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ, рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╕рдВрдХрд▓рд┐рдд рдХрдХреНрд╖рд╛рдПрдВ (рдЕрдВрджрд░ рд╕рдВрдмрдВрдзрд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ) <Glassfish рдбреЛрдореЗрди> / lib / рдХрдХреНрд╖рд╛рдПрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИрдВ
рд╣рдореЗрдВ рдпрд╣ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдорд╛рд░рд╛ AppservPasswordLoginModule рд╕рдВрджрд░реНрдн рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ <Glassfish domain> /config/login.conf "рд▓рд┐рдВрдХ" рдЬреЛрдбрд╝рдХрд░:
 KHMBRealm { ru.khmb.security.LoginModule required; }; 

рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╕рдВрджрд░реНрдн рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ / рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ GUI рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рдПрдХ рдирдпрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдПрдБред рдЕрдм рд╣рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ: ru.khmb.security.Realmред рдЬреЛрд╕-рд╕рдВрджрд░реНрдн рд╡рд┐рдХрд▓реНрдк рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓реЗрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рджрд╛рдпрд░реЗ рдХреЛ рд▓реЙрдЧрд┐рди.conf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, jaas-reference = KHMBRealm

рд╕рдм рдХреБрдЫ, рдЕрдм рдЖрдк рджрд╛рдпрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рд╕реНрд░реЛрдд рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдерд╛ ред

рдЕрджреНрдпрддрди 08/02/2013:
рдбреЗрд╡рд┐рдб рд╣реЗрдлреЗрд▓рд┐рдВрдЧрд░ рдХреА рдкреБрд╕реНрддрдХ "рдЬрд╛рд╡рд╛ рдИрдИ 6 рдФрд░ рдЧреНрд▓рд╛рд╕рдлрд┐рд╢ 3 рдПрдкреНрд▓реАрдХреЗрд╢рди рд╕рд░реНрд╡рд░" рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдерд╛рдиреЛрдВ (рд╕реБрд░рдХреНрд╖рд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд░реНрдгрди рд╣реИред

Source: https://habr.com/ru/post/In152483/


All Articles