Jump to content

Search the Community

Showing results for tags 'jwt'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 5 results

  1. Pessoal, sobre o JWT Json Web Token, tenho algumas dúvidas. Atualmente faço uso de $_SESSION no PHP para autenticar e validar usuários e seus acessos à API e, logins no site/admin, dentre outras coisas. Mas, estudando aqui sobre API's, percebi a grande utilização do JWT em conjunto com a autenticação. 1 => No form de login o usuário de identifica 2 => Se as credenciais existirem o usuário ganha o retorno OK e cria uma $_SESSION com as credenciais. Mas isso é quando Ambiente Admin e API estão no mesmo domínio. Quando estão em domínios diferentes está sendo usado o JWT. Mas, aí vem a dúvida: É confiável para níveis de acesso e autenticação? Andei pensando em umas coisas: A) Enviar no Token o nível de acesso do usuário. Se é administrador, API, etc... Mas isso pode ser mudado pelo man-in-the-middle. B) Então pensei em enviar via SECRET. Também não dá pois o segredo deve ser 1 para todo e qualquer acesso ficando impossível a verificação do TOKEN pela API C) Pensei enviar via cabeçalho (header). Mas no caso, é a API quem gera o Token. Logo, não dá! Será que não existe saída? Terei mesmo que usar $_SESSION para nível de acesso e JWT para validação da requisição? Será que estou tendo uma visão errada do cenário? Alguém pode me ajudar a enxergar isso? Meu sistema de diretórios é: site/admin //administrador da API site/api // A própria API
  2. Olá pessoal, alguém sabe como eu adiciono o header no script abaixo? headers:{ 'Authorization' : 'Bearer '+accessToken, 'Content-Type' : 'application/json' } ------------------------------------- SCRIPT PARA ADICIONAR O HEADER ----------------------------------- jQuery.get('data.json', function (data) { var videosConfig = { list: tvApp.videoList, data: JSON.parse(data), callback: function () { var movies = document.querySelectorAll('.navigable'); var i=0; for (i = 0; i < movies.length; i += 1) { movie = movies; movie.removeEventListener('focus', onFocus); movie.addEventListener('focus', onFocus); } function documentOffsetTop(el) { return el.offsetTop + ( el.offsetParent ? documentOffsetTop(el.offsetParent) : 0 ); } function onFocus(e) { console.log(e); var el = document.querySelector('.navigable.focused'); var top = documentOffsetTop(el) - ( window.innerHeight / 3 ); app.videoList.parentNode.scrollTop = top; app.stateObj.videoId = el.dataset.videoid; app.stateObj.videoURL = el.dataset.video; } } }; new VideoList(videosConfig); bishopNavigation.focus(document.getElementById('video-list').firstElementChild, 'keyboard'); });
  3. Neillon Cesar

    Erro em autenticação com JWT e Spring boot

    Boa tarde estou com um problema na liberação de rotas para minha aplicação feita com Spring boot. O problema é que a rota principal "/HOME" pede o token JWT para acessa-la, porem ela está configurada para permitir qualquer tipo de request de qualquer usuário, com ou sem token. Alguém já teve esse tipo de problema ?Estava seguindo este tutorial: http://andreybleme.com/2017-04-01/autenticacao-com-jwt-no-spring-boot/Arquivo de boot: package br.com.teste; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController @EnableAutoConfiguration public class Boot { public static void main(String[] args) { SpringApplication.run(Boot.class, args); } @GetMapping("/home") public String home() { return "home"; } } Arquivo de configuração: package br.com.security; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity.csrf().disable().authorizeRequests() .antMatchers("/home").permitAll() .antMatchers(HttpMethod.POST, "/login").permitAll() .anyRequest().authenticated() .and() // filtra requisições de login .addFilterBefore(new JWTLoginFilter("/login", authenticationManager()), UsernamePasswordAuthenticationFilter.class) // filtra outras requisições para verificar a presença do JWT no header .addFilterBefore(new JWTAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { // cria uma conta default auth.inMemoryAuthentication() .withUser("admin") .password("password") .roles("ADMIN"); } } Arquivo TokenAuthenticationService: import javax.servlet.http.HttpServletResponse; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; public class TokenAuthenticationService { // EXPIRATION_TIME = 10 dias static final long EXPIRATION_TIME = 860_000_000; static final String SECRET = "9FFE05B4553F32356D4D70F128FF0BB8C19F64275C45153EF26ED127E264A2AA"; static final String TOKEN_PREFIX = "Bearer"; static final String HEADER_STRING = "Authorization"; static void addAuthentication(HttpServletResponse response, String username) { String JWT = Jwts.builder() .setSubject(username) .setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME)) .signWith(SignatureAlgorithm.HS512, SECRET) .compact(); response.addHeader(HEADER_STRING, TOKEN_PREFIX + " " + JWT); } static Authentication getAuthentication(HttpServletRequest request) { String token = request.getHeader(HEADER_STRING); if (token != null) { // faz parse do token String user = Jwts.parser() .setSigningKey(SECRET) .parseClaimsJws(token.replace(TOKEN_PREFIX, "")) .getBody() .getSubject(); if (user != null) { return new UsernamePasswordAuthenticationToken(user, null, Collections.emptyList()); } } return null; } } Arquivo JWTLoginFilter: package br.com.security; import java.io.IOException; import java.util.Collections; import javax.servlet.FilterChain; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.models.AccountCredentials; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; import com.fasterxml.jackson.databind.ObjectMapper; public class JWTLoginFilter extends AbstractAuthenticationProcessingFilter { protected JWTLoginFilter(String url, AuthenticationManager authManager) { super(new AntPathRequestMatcher(url)); setAuthenticationManager(authManager); } @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException, IOException { AccountCredentials credentials = new ObjectMapper() .readValue(request.getInputStream(), AccountCredentials.class); return getAuthenticationManager().authenticate( new UsernamePasswordAuthenticationToken( credentials.getUsername(), credentials.getPassword(), Collections.emptyList() ) ); } @Override protected void successfulAuthentication( HttpServletRequest request, HttpServletResponse response, FilterChain filterChain, Authentication auth) { TokenAuthenticationService.addAuthentication(response, auth.getName()); } } Arquivo JWTAuthenticationFilter: package br.com.security; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.filter.GenericFilterBean; public class JWTAuthenticationFilter extends GenericFilterBean { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { Authentication authentication = TokenAuthenticationService .getAuthentication((HttpServletRequest) request); SecurityContextHolder.getContext().setAuthentication(authentication); filterChain.doFilter(request, response); } }
  4. Bom dia, Estou implementando um app que usa comunicacao com webServer (REST): PHP Slim + Retrofit. Agora preciso , para seguranca, implementacao autenticacao da requisicao utilizando JWT (Jjson Web Tokens). Me indicam algum tutorial para esta integraçao ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.