{"id":60,"date":"2015-09-25T17:32:11","date_gmt":"2015-09-25T17:32:11","guid":{"rendered":"https:\/\/www.joseluisestevez.com\/?p=60"},"modified":"2017-02-01T11:28:59","modified_gmt":"2017-02-01T11:28:59","slug":"autenticacion-as400-usando-spring-security","status":"publish","type":"post","link":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/","title":{"rendered":"Autenticaci\u00f3n AS400 usando Spring Security"},"content":{"rendered":"<p>En algunos Bancos que aun siguen le gusta que sus aplicaciones se\u00a0autentiquen \u00a0contra su\u00a0\u00a0AS400 para as\u00ed controlar los accesos a los recursos directamente desde este, hoy los quiero mostrar como crear una aplicaci\u00f3n Java usando Spring con Spring Security para hacer este simple Login.<\/p>\n<p><!--more--><\/p>\n<p>Herramientas Utilizadas en el Ejemplo:<\/p>\n<ol>\n<li>Maven<\/li>\n<li>Tomcat 8<\/li>\n<li>Java 8<\/li>\n<li>Netbeans 8<\/li>\n<\/ol>\n<p>Ahora si comenzamos, voy a explicar los archivos m\u00e1s importantes, si quieres el c\u00f3digo completo lo puedes descargar desde mi <a href=\"https:\/\/github.com\/jestevez\/autenticacion-as400-spring-security\">Github<\/a><\/p>\n<p><strong>El archivo pom.xml<\/strong><\/p>\n<p>En este archivo\u00a0coloque todas las dependencias necesarias para usar Spring y Spring Security solo quiero destacar que para usar el api de AS400 coloque la dependencia de esta forma ya que no existe en el repositorio de Maven:<\/p>\n<pre class=\"lang:default decode:true\">&lt;dependency&gt;\r\n    &lt;groupId&gt;com.ibm&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;jt400&lt;\/artifactId&gt;\r\n    &lt;version&gt;6.1.0.6&lt;\/version&gt;\r\n    &lt;scope&gt;system&lt;\/scope&gt;\r\n    &lt;systemPath&gt;${basedir}\/lib\/jt400.jar&lt;\/systemPath&gt;\r\n&lt;\/dependency&gt;<\/pre>\n<p><strong>Archivo web.xml <\/strong><\/p>\n<p>Aqu\u00ed he\u00a0configurado el Servlet de Spring y Filtro de Spring Security<\/p>\n<pre class=\"lang:default decode:true\">    &lt;servlet&gt;\r\n        &lt;servlet-name&gt;mvc-dispatcher&lt;\/servlet-name&gt;\r\n        &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;\/servlet-class&gt;\r\n        &lt;init-param&gt;\r\n            &lt;param-name&gt;contextConfigLocation&lt;\/param-name&gt;\r\n            &lt;param-value&gt;\/WEB-INF\/applicationContext.xml&lt;\/param-value&gt;\r\n        &lt;\/init-param&gt;\r\n        &lt;load-on-startup&gt;1&lt;\/load-on-startup&gt;\r\n    &lt;\/servlet&gt;\r\n    &lt;servlet-mapping&gt;\r\n        &lt;servlet-name&gt;mvc-dispatcher&lt;\/servlet-name&gt;\r\n        &lt;url-pattern&gt;\/app\/*&lt;\/url-pattern&gt;\r\n    &lt;\/servlet-mapping&gt;\r\n    &lt;filter&gt;\r\n        &lt;filter-name&gt;springSecurityFilterChain&lt;\/filter-name&gt;\r\n        &lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;\/filter-class&gt;\r\n    &lt;\/filter&gt;\r\n    &lt;filter-mapping&gt;\r\n        &lt;filter-name&gt;springSecurityFilterChain&lt;\/filter-name&gt;\r\n        &lt;url-pattern&gt;\/*&lt;\/url-pattern&gt;\r\n    &lt;\/filter-mapping&gt;<\/pre>\n<p><strong>Archivo spring-security.xml<\/strong><\/p>\n<p>En la configuraci\u00f3n se SpringSecurity cree\u00a0el\u00a0authenticationProvider el cual usaremos para validar la sesi\u00f3n desde el AS400<\/p>\n<pre class=\"lang:default decode:true\">    &lt;beans:bean id=\"authenticationProvider\"\r\n         class=\"com.stricore.as400.security.CustomAuthenticationProvider\"&gt;\r\n            &lt;beans:property name=\"nonceValiditySeconds\" value=\"10\"\/&gt;\r\n            &lt;beans:property name=\"key\" value=\"KEY\"\/&gt;\r\n    &lt;\/beans:bean&gt;\r\n     \r\n    &lt;security:authentication-manager alias=\"authenticationManager\"&gt;\r\n        &lt;security:authentication-provider ref=\"authenticationProvider\"\/&gt;\r\n    &lt;\/security:authentication-manager&gt;<\/pre>\n<p><strong>Archivo\u00a0login.jsp<\/strong><\/p>\n<p>Vamos a crear nuestro archivo login.jsp el mismo la vamos a colocar dentro de WEB-INF\/pages\/auth\/login.jsp, para los que no tienen experiencia con Spring Security<\/p>\n<pre class=\"lang:default decode:true\">&lt;form method=\"POST\" id=\"form1\" name=\"form1\" \r\n    action=\"${pageContext.servletContext.contextPath }\/j_spring_security_check\"\r\n    autocomplete=\"off\"&gt;\r\n    &lt;input type=\"hidden\" name=\"${_csrf.parameterName}\" value=\"${_csrf.token}\"\/&gt;\r\n    &lt;input type=\"hidden\" name=\"timeout\" id=\"timeout\" value=\"${timeout}\" \/&gt;\r\n    &lt;c:out value=\"${message}\"\/&gt;\r\n    &lt;c:if test=\"${sessionScope.levelerror != null}\"&gt;\r\n      &lt;div id=\"levelerror \" class=\"error\"&gt;\r\n      &lt;c:out value=\"${sessionScope.levelerror}\" \/&gt;\r\n      &lt;c:remove var=\"levelerror\" scope=\"session\"\/&gt;\r\n      &lt;\/div&gt;    \r\n    &lt;\/c:if&gt;\r\n    &lt;table cellspacing=\"1\"&gt;\r\n      &lt;tr&gt;\r\n         &lt;td&gt;\r\n            &lt;label for=\"signin_username\"&gt;Usuario&lt;\/label&gt;\r\n         &lt;\/td&gt;\r\n      &lt;\/tr&gt;\r\n      &lt;tr&gt;\r\n         &lt;td&gt;\r\n            &lt;input id=\"j_username\" name=\"j_username\" type=\"text\" value=\"\" maxlength=\"10\"  type=\"text\"&gt;\r\n         &lt;\/td&gt;\r\n      &lt;\/tr&gt;\r\n      &lt;tr&gt;\r\n         &lt;td&gt;\r\n            &lt;label for=\"signin_password\"&gt;Contrase\u00f1a&lt;\/label&gt;\r\n         &lt;\/td&gt;\r\n      &lt;\/tr&gt;\r\n      &lt;tr&gt;\r\n         &lt;td&gt;\r\n           &lt;input id=\"j_password\" name=\"j_password\" type=\"password\" value=\"\" maxlength=\"10\"&gt;\r\n          &lt;\/td&gt;\r\n       &lt;\/tr&gt;\r\n       &lt;tr&gt;\r\n          &lt;td&gt;\r\n             &lt;input type=\"submit\" value=\"Autenticar\"&gt;\r\n          &lt;\/td&gt;\r\n       &lt;\/tr&gt;\r\n     &lt;\/table&gt;\r\n   &lt;\/form&gt;<\/pre>\n<p><strong>Clase\u00a0AuthController.java<\/strong><\/p>\n<p>Este es el controlado que va a\u00a0presentar la pantalla de inicio de sesi\u00f3n:<\/p>\n<pre class=\"lang:java decode:true\">@Controller\r\n@RequestMapping(\"\/auth\")\r\npublic class AuthController {\r\n\r\n    @Autowired\r\n    CustomAuthenticationProvider authenticationProvider;\r\n\r\n    @RequestMapping(value = \"\/login\", method = RequestMethod.GET)\r\n    public String getLoginPage(ModelMap model, HttpServletRequest request, HttpSession session) {\r\n        String timeout = authenticationProvider.calculateNonce();\r\n        session.setAttribute(\"timeout\", timeout);\r\n        model.addAttribute(\"timeout\", timeout);\r\n\r\n        try {\r\n            if (request.getParameter(\"message\") != null) {\r\n                String message = \"\";\r\n                long error = Long.parseLong(request.getParameter(\"message\"));\r\n                if (error == 1) {\r\n                    message = \"Usuario o contrase\u00f1a no v\u00e1lidos!\";\r\n                } else if (error == 2) {\r\n                    message = \"Sesi\u00f3n cerrada con \u00e9xito\";\r\n                } else if (error == 3) {\r\n                    message = \"Su sesi\u00f3n expiro!\";\r\n                } else if (error == 4) {\r\n                    message = \"Su sesi\u00f3n expiro!\";\r\n                } else if (error == 5) {\r\n                    message = \"Su sesi\u00f3n se ha cerrado por que ha sido abierta desde otro sitio!\";\r\n                }\r\n                request.getSession().setAttribute(\"levelerror\", message);\r\n            }\r\n        } catch (Exception e) {\r\n        }\r\n        return \"\/auth\/login\";\r\n    }\r\n\r\n    @RequestMapping(value = \"\/logout\", method = RequestMethod.GET)\r\n    public String getLogoutPage(ModelMap model, HttpServletRequest request, HttpSession session) {\r\n        session.removeAttribute(\"username\");\r\n        session.invalidate();\r\n\r\n        return \"\/auth\/logout\";\r\n    }\r\n\r\n    @RequestMapping(value = \"\/denied\", method = RequestMethod.GET)\r\n    public String getDeniedPage(@RequestParam(value = \"error\", required = false) boolean error,\r\n            ModelMap model) {\r\n\r\n        return \"\/auth\/denied\";\r\n    }\r\n\r\n}<\/pre>\n<p><strong>Clase\u00a0CustomAuthenticationProvider.java<\/strong><\/p>\n<p>En esta clase vamos a iniciar la sesi\u00f3n el AS400, dentro de ella podemos encotrar tres metodos:<\/p>\n<p>authenticate:<\/p>\n<pre class=\"lang:java decode:true\">    @Override\r\n    public final Authentication authenticate(Authentication authentication) {\r\n        final UsernamePasswordWithTimeoutAuthenticationToken authenticationToken = (UsernamePasswordWithTimeoutAuthenticationToken) authentication;\r\n        validateTimeout(authenticationToken);\r\n\r\n        String name = authentication.getName();\r\n        String password = authentication.getCredentials().toString();\r\n\r\n        if (isPasswordCorrect(authentication)) {\r\n            List&lt;GrantedAuthority&gt; grantedAuths = new ArrayList&lt;GrantedAuthority&gt;();\r\n            grantedAuths.add(new SimpleGrantedAuthority(\"ROLE_USER\"));\r\n            grantedAuths.add(new SimpleGrantedAuthority(\"ROLE_ADMIN\"));\r\n            grantedAuths.add(new SimpleGrantedAuthority(\"superuser\"));\r\n            Authentication auth = new UsernamePasswordAuthenticationToken(name, password, grantedAuths);\r\n            return auth;\r\n        } else {\r\n            return null;\r\n        }\r\n    }<\/pre>\n<p>isPasswordCorrect: Aqu\u00ed vamos a iniciar la sesi\u00f3n contra el AS400 con el m\u00e9todo\u00a0validateSignon del jt400.<\/p>\n<pre class=\"lang:java decode:true \">    protected boolean isPasswordCorrect(Authentication authentication) {        \r\n        String systemName = \"PUB1.RZKH.DE\";\r\n        String userName = authentication.getName();\r\n        String userPwd = authentication.getCredentials().toString();\r\n        AS400 myAS400 = new AS400(systemName);\r\n        String msg = \"authentification failed on \" + systemName + \" for user\" + userName;\r\n        try {\r\n            myAS400.validateSignon(userName, userPwd);\r\n        } catch (AS400SecurityException e) {\r\n            translateSecurityExceptionAndRethrow(e, userName, systemName);\r\n            throw new BadCredentialsException(msg, e);\r\n        } catch (IOException e) {\r\n            throw new AuthenticationServiceException(msg, e);\r\n        }\r\n        return true;\r\n    }<\/pre>\n<p>translateSecurityExceptionAndRethrow: Como el m\u00e9todo\u00a0validateSignon no retorna nada\u00a0si es correcto, el lanza una excepci\u00f3n de error de autenticaci\u00f3n el cual vamos a manjar con este otro m\u00e9todo:<\/p>\n<pre class=\"lang:java decode:true \">    private void translateSecurityExceptionAndRethrow(AS400SecurityException e,\r\n            String userName, String systemName) {\r\n        int code = e.getReturnCode();\r\n        String msg = \"authentification failed on \" + systemName + \" for user\" + userName;\r\n        if (code == AS400SecurityException.PASSWORD_INCORRECT) {\r\n            throw new BadCredentialsException(msg, e);\r\n        } else if (code == AS400SecurityException.USERID_UNKNOWN) {\r\n            throw new UsernameNotFoundException(msg, e);\r\n        } else if (code == AS400SecurityException.PASSWORD_EXPIRED) {\r\n            throw new CredentialsExpiredException(msg, e);\r\n        } else if (code == AS400SecurityException.PASSWORD_INCORRECT_USERID_DISABLE) {\r\n            throw new CredentialsExpiredException(msg, e);\r\n        } else if (code == AS400SecurityException.USERID_DISABLE) {\r\n            throw new CredentialsExpiredException(msg, e);\r\n        } else {\r\n            throw new BadCredentialsException(msg, e);\r\n        }\r\n    }<\/pre>\n<p>&nbsp;<\/p>\n<p>Ahora vamos a correr el proyecto desde Netbeans usando Tomcat:<\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-63 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png\" alt=\"Captura de pantalla de 2015-09-25 11:52:30\" width=\"641\" height=\"486\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png 641w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230-300x227.png 300w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/a><\/p>\n<p>Y ahora entramos al inicio de sesion:<\/p>\n<p><a href=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115224.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-62 size-full\" src=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115224.png\" alt=\"Captura de pantalla de 2015-09-25 11:52:24\" width=\"781\" height=\"526\" srcset=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115224.png 781w, https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115224-300x202.png 300w\" sizes=\"auto, (max-width: 781px) 100vw, 781px\" \/><\/a><\/p>\n<p>Descargar el c\u00f3digo desde <a href=\"https:\/\/github.com\/jestevez\/autenticacion-as400-spring-security\">Github<\/a> tambi\u00e9n puedes seguirme para que recibas informaci\u00f3n de todas las soluciones Java con AS400 que voy a seguir montando.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En algunos Bancos que aun siguen le gusta que sus aplicaciones se\u00a0autentiquen \u00a0contra su\u00a0\u00a0AS400 para as\u00ed controlar los accesos a los recursos directamente desde este, hoy los quiero mostrar como crear una aplicaci\u00f3n Java usando Spring con Spring Security para hacer este simple Login.<\/p>\n","protected":false},"author":1,"featured_media":63,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,8,7],"tags":[4,9,10],"class_list":["post-60","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-as400","category-java","category-spring","tag-as400","tag-java","tag-spring"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Autenticaci\u00f3n AS400 usando Spring Security - El Blog de Jose Luis Estevez<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Autenticaci\u00f3n AS400 usando Spring Security - El Blog de Jose Luis Estevez\" \/>\n<meta property=\"og:description\" content=\"En algunos Bancos que aun siguen le gusta que sus aplicaciones se\u00a0autentiquen \u00a0contra su\u00a0\u00a0AS400 para as\u00ed controlar los accesos a los recursos directamente desde este, hoy los quiero mostrar como crear una aplicaci\u00f3n Java usando Spring con Spring Security para hacer este simple Login.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/\" \/>\n<meta property=\"og:site_name\" content=\"El Blog de Jose Luis Estevez\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-25T17:32:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-02-01T11:28:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png\" \/>\n\t<meta property=\"og:image:width\" content=\"641\" \/>\n\t<meta property=\"og:image:height\" content=\"486\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"yeyo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"yeyo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/\"},\"author\":{\"name\":\"yeyo\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#\\\/schema\\\/person\\\/6a17b38fcac664fdb33a5fba8056d0ee\"},\"headline\":\"Autenticaci\u00f3n AS400 usando Spring Security\",\"datePublished\":\"2015-09-25T17:32:11+00:00\",\"dateModified\":\"2017-02-01T11:28:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/\"},\"wordCount\":333,\"image\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.joseluisestevez.com\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/Captura-de-pantalla-de-2015-09-25-115230.png\",\"keywords\":[\"AS400\",\"Java\",\"Spring\"],\"articleSection\":[\"AS400\",\"Java\",\"Spring\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/\",\"url\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/\",\"name\":\"Autenticaci\u00f3n AS400 usando Spring Security - El Blog de Jose Luis Estevez\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.joseluisestevez.com\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/Captura-de-pantalla-de-2015-09-25-115230.png\",\"datePublished\":\"2015-09-25T17:32:11+00:00\",\"dateModified\":\"2017-02-01T11:28:59+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#\\\/schema\\\/person\\\/6a17b38fcac664fdb33a5fba8056d0ee\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.joseluisestevez.com\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/Captura-de-pantalla-de-2015-09-25-115230.png\",\"contentUrl\":\"https:\\\/\\\/www.joseluisestevez.com\\\/wp-content\\\/uploads\\\/2015\\\/09\\\/Captura-de-pantalla-de-2015-09-25-115230.png\",\"width\":641,\"height\":486},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/2015\\\/09\\\/25\\\/autenticacion-as400-usando-spring-security\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.joseluisestevez.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Autenticaci\u00f3n AS400 usando Spring Security\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#website\",\"url\":\"https:\\\/\\\/www.joseluisestevez.com\\\/\",\"name\":\"El Blog de Jose Luis Estevez\",\"description\":\"Desarrollador Senior\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.joseluisestevez.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.joseluisestevez.com\\\/#\\\/schema\\\/person\\\/6a17b38fcac664fdb33a5fba8056d0ee\",\"name\":\"yeyo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g\",\"caption\":\"yeyo\"},\"description\":\"Arquitecto de Software emprendedor con ardua experiencia en el camino de la tecnolog\u00eda.\",\"sameAs\":[\"http:\\\/\\\/www.joseluisestevez.com\"],\"url\":\"https:\\\/\\\/www.joseluisestevez.com\\\/index.php\\\/author\\\/yeyo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Autenticaci\u00f3n AS400 usando Spring Security - El Blog de Jose Luis Estevez","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/","og_locale":"es_ES","og_type":"article","og_title":"Autenticaci\u00f3n AS400 usando Spring Security - El Blog de Jose Luis Estevez","og_description":"En algunos Bancos que aun siguen le gusta que sus aplicaciones se\u00a0autentiquen \u00a0contra su\u00a0\u00a0AS400 para as\u00ed controlar los accesos a los recursos directamente desde este, hoy los quiero mostrar como crear una aplicaci\u00f3n Java usando Spring con Spring Security para hacer este simple Login.","og_url":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/","og_site_name":"El Blog de Jose Luis Estevez","article_published_time":"2015-09-25T17:32:11+00:00","article_modified_time":"2017-02-01T11:28:59+00:00","og_image":[{"width":641,"height":486,"url":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png","type":"image\/png"}],"author":"yeyo","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"yeyo","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/#article","isPartOf":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/"},"author":{"name":"yeyo","@id":"https:\/\/www.joseluisestevez.com\/#\/schema\/person\/6a17b38fcac664fdb33a5fba8056d0ee"},"headline":"Autenticaci\u00f3n AS400 usando Spring Security","datePublished":"2015-09-25T17:32:11+00:00","dateModified":"2017-02-01T11:28:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/"},"wordCount":333,"image":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/#primaryimage"},"thumbnailUrl":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png","keywords":["AS400","Java","Spring"],"articleSection":["AS400","Java","Spring"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/","url":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/","name":"Autenticaci\u00f3n AS400 usando Spring Security - El Blog de Jose Luis Estevez","isPartOf":{"@id":"https:\/\/www.joseluisestevez.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/#primaryimage"},"image":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/#primaryimage"},"thumbnailUrl":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png","datePublished":"2015-09-25T17:32:11+00:00","dateModified":"2017-02-01T11:28:59+00:00","author":{"@id":"https:\/\/www.joseluisestevez.com\/#\/schema\/person\/6a17b38fcac664fdb33a5fba8056d0ee"},"breadcrumb":{"@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/#primaryimage","url":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png","contentUrl":"https:\/\/www.joseluisestevez.com\/wp-content\/uploads\/2015\/09\/Captura-de-pantalla-de-2015-09-25-115230.png","width":641,"height":486},{"@type":"BreadcrumbList","@id":"https:\/\/www.joseluisestevez.com\/index.php\/2015\/09\/25\/autenticacion-as400-usando-spring-security\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.joseluisestevez.com\/"},{"@type":"ListItem","position":2,"name":"Autenticaci\u00f3n AS400 usando Spring Security"}]},{"@type":"WebSite","@id":"https:\/\/www.joseluisestevez.com\/#website","url":"https:\/\/www.joseluisestevez.com\/","name":"El Blog de Jose Luis Estevez","description":"Desarrollador Senior","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.joseluisestevez.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.joseluisestevez.com\/#\/schema\/person\/6a17b38fcac664fdb33a5fba8056d0ee","name":"yeyo","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3565e9dac43d5a8d2b807866a3af3ab66eeacb68b2d28fc63b962ad40c6ef4c7?s=96&d=mm&r=g","caption":"yeyo"},"description":"Arquitecto de Software emprendedor con ardua experiencia en el camino de la tecnolog\u00eda.","sameAs":["http:\/\/www.joseluisestevez.com"],"url":"https:\/\/www.joseluisestevez.com\/index.php\/author\/yeyo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/posts\/60","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/comments?post=60"}],"version-history":[{"count":3,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/posts\/60\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/posts\/60\/revisions\/65"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/media\/63"}],"wp:attachment":[{"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/media?parent=60"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/categories?post=60"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joseluisestevez.com\/index.php\/wp-json\/wp\/v2\/tags?post=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}