2016-11-03 4 views
0

Haben Sie Ideen, auf https url guys zuzugreifen? Ich möchte es wirklich vervollständigen. Wenn ich versuche, eine Verbindung zum Server wie folgt herzustellen, sendet der Server 403 Fehler. Ich habe .cert und .keystore auch erstellt. Vielen Dank für Ihre Idee.Wie kann ich mit @requestMapping auf das https-Protokoll von JS zum Spring-Boot zugreifen?

Mein Server-Code (Controlling)

@Log4j 
@Controller 
@RequestMapping("/v0.1/login") 
public class LoginSessionAPI { 

    @Autowired 
    UserService service; 

    @RequestMapping(method = RequestMethod.POST) 
    public String verify(@RequestParam("id") String id, @RequestParam("pw") String pw) { 

     String auth = service.excute(id, pw); 

     return auth; 
    } 
} 

-Client-Site (JavaScript)

function getService(userId, userPw, ipPort){ 

    var protocol = "https://" 
    var HOST = protocol + ipPort + "/v0.1/login"; 
    console.log("HOST : "+HOST); 
    var loginAuth; 
    var loginJson = new Object(); 
    loginJson.id = userId; 
    loginJson.pw = userPw; 

    var loginRequest = new XMLHttpRequest(); 


    loginRequest.onreadystatechange = function(){ 
     // process the server response 
     console.log("status : "+loginRequest.status); 
     if (loginRequest.status == 200) { 
      console.log("object : "+loginRequest.responseText); 
      if(loginRequest.responseText === ""){ 

      }else{ 
       var responseLoginJson = eval("("+loginRequest.responseText+")"); 
       loginAuth = responseLoginJson.loginAuth; 
      } 

     } else { 
      console.log("failed"); 
     } 
    }; 
    loginRequest.open("POST", HOST, false); 
    loginRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 
    console.log(loginJson); 
    loginRequest.send(JSON.stringify(loginJson)); 
} 



And then, 
I call getService(id, pw, ipPort) function. 

habe ich SSL-Zertifizierung.
application.properties

server.port=8443 
server.ssl.key-store=keystore.jks 
server.ssl.key-store-password=123456 
server.ssl.key-password=123456 
server.ssl.key-alias=tomcat 
server.ssl.trust-store=cacerts.jks 
server.ssl.trust-store-password=123456 
server.ssl.protocol=TLS 
server.ssl.ciphers=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_25\u200C\u200B6_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA 
+0

Protokolle von Browser anhängen – PawelN

+0

{ "Zeitstempel": 1478303640819, "status": 403, "error": "Verboten", "message": "Expected CSRF-Token nicht gefunden. Ist Ihre Sitzung abgelaufen? "," path ":"/action/register "}" – Jason

+0

Ich habe diesen Header angehängt, aber habe immer noch Probleme. var header = $ ("meta [name = '_ csrf_header']") .attr ("content"); var token = $ ("meta [name = '_ csrf']"). attr ("Inhalt"); loginRequest.setRequestHeader (header, token); – Jason

Antwort

0

bekam ich die Lösung.

in SecurityConfig Klasse hinzugefügt

http.csrf().disable(); 
+0

Ich denke, dies ist keine Lösung, um Ihre App weniger sicher zu machen –

Verwandte Themen