To load a new URL through ajax - Failed to create a session, as response has been committed. Unable to store...
up vote
0
down vote
favorite
In my grails project (version 2.4.4), i am using grails-security-rest plugin. But for few APIs i need traditional security to work because we haven't yet completed got rid of GSP pages. I have been successful in handling all scenarios except one in which i want the user to redirect to a specific protected GSP from a link which i send him in an email. If the user is already logged in, the redirection happens smoothly but when i try to access it through an AJAX call (after getting the JWT token), it redirects back to the original page and in the logs, i find this issue - "Failed to create a session, as response has been committed. Unable to store SecurityContext."
class InternalPagesController {
def springSecurityService
def index() {
if (springSecurityService.isLoggedIn()) {
redirect(controller: params.cname, action: params.aname, params: params)
} else {
model: [params: params]
}
}
}
The associated gsp page contains the following -
<script>
function login(){
var email=document.getElementById("username").value;
var password= document.getElementById("password").value;
var formData = {"email": email, "password" : password};
console.log("hello"+email);
//var url = "${createLink(controller:'login', action:'authenticationJwt')}";
$.ajax({
url: "${grailsApplication.config.grails.ServerURL}/api/login",
type: 'POST',
data: JSON.stringify(formData),
async: false,
contentType : 'application/json',
success: function(data) {
localStorage.setItem('access_token',data.access_token)
dashboard(data);
},
error: function(data) {
console.log("errordata :"+data)
}
});
}
function dashboard(data){
var url = "${createLink(controller:'controllerName', action:'actionName')}";
$.ajax({
url : url,
type : 'GET',
async: false,
contentType : 'application/json',
beforeSend : function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer "
+ data.access_token);
},
success : function(data) {
//window.location=url;
},
error : function(data) {
console.log("errordata :" + data)
}
});
}
</script>
In the userRequestResponse i am trying to render another view and that is where the issue is.
class LeaveTrackerController {
@Secured(["ROLE_USER"])
def userRequestResponse(){
render (view : "/leaveTracker/tokenExpired")
}
}
I shall be grateful for any kind of help on this.
grails spring-security gsp
New contributor
add a comment |
up vote
0
down vote
favorite
In my grails project (version 2.4.4), i am using grails-security-rest plugin. But for few APIs i need traditional security to work because we haven't yet completed got rid of GSP pages. I have been successful in handling all scenarios except one in which i want the user to redirect to a specific protected GSP from a link which i send him in an email. If the user is already logged in, the redirection happens smoothly but when i try to access it through an AJAX call (after getting the JWT token), it redirects back to the original page and in the logs, i find this issue - "Failed to create a session, as response has been committed. Unable to store SecurityContext."
class InternalPagesController {
def springSecurityService
def index() {
if (springSecurityService.isLoggedIn()) {
redirect(controller: params.cname, action: params.aname, params: params)
} else {
model: [params: params]
}
}
}
The associated gsp page contains the following -
<script>
function login(){
var email=document.getElementById("username").value;
var password= document.getElementById("password").value;
var formData = {"email": email, "password" : password};
console.log("hello"+email);
//var url = "${createLink(controller:'login', action:'authenticationJwt')}";
$.ajax({
url: "${grailsApplication.config.grails.ServerURL}/api/login",
type: 'POST',
data: JSON.stringify(formData),
async: false,
contentType : 'application/json',
success: function(data) {
localStorage.setItem('access_token',data.access_token)
dashboard(data);
},
error: function(data) {
console.log("errordata :"+data)
}
});
}
function dashboard(data){
var url = "${createLink(controller:'controllerName', action:'actionName')}";
$.ajax({
url : url,
type : 'GET',
async: false,
contentType : 'application/json',
beforeSend : function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer "
+ data.access_token);
},
success : function(data) {
//window.location=url;
},
error : function(data) {
console.log("errordata :" + data)
}
});
}
</script>
In the userRequestResponse i am trying to render another view and that is where the issue is.
class LeaveTrackerController {
@Secured(["ROLE_USER"])
def userRequestResponse(){
render (view : "/leaveTracker/tokenExpired")
}
}
I shall be grateful for any kind of help on this.
grails spring-security gsp
New contributor
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
In my grails project (version 2.4.4), i am using grails-security-rest plugin. But for few APIs i need traditional security to work because we haven't yet completed got rid of GSP pages. I have been successful in handling all scenarios except one in which i want the user to redirect to a specific protected GSP from a link which i send him in an email. If the user is already logged in, the redirection happens smoothly but when i try to access it through an AJAX call (after getting the JWT token), it redirects back to the original page and in the logs, i find this issue - "Failed to create a session, as response has been committed. Unable to store SecurityContext."
class InternalPagesController {
def springSecurityService
def index() {
if (springSecurityService.isLoggedIn()) {
redirect(controller: params.cname, action: params.aname, params: params)
} else {
model: [params: params]
}
}
}
The associated gsp page contains the following -
<script>
function login(){
var email=document.getElementById("username").value;
var password= document.getElementById("password").value;
var formData = {"email": email, "password" : password};
console.log("hello"+email);
//var url = "${createLink(controller:'login', action:'authenticationJwt')}";
$.ajax({
url: "${grailsApplication.config.grails.ServerURL}/api/login",
type: 'POST',
data: JSON.stringify(formData),
async: false,
contentType : 'application/json',
success: function(data) {
localStorage.setItem('access_token',data.access_token)
dashboard(data);
},
error: function(data) {
console.log("errordata :"+data)
}
});
}
function dashboard(data){
var url = "${createLink(controller:'controllerName', action:'actionName')}";
$.ajax({
url : url,
type : 'GET',
async: false,
contentType : 'application/json',
beforeSend : function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer "
+ data.access_token);
},
success : function(data) {
//window.location=url;
},
error : function(data) {
console.log("errordata :" + data)
}
});
}
</script>
In the userRequestResponse i am trying to render another view and that is where the issue is.
class LeaveTrackerController {
@Secured(["ROLE_USER"])
def userRequestResponse(){
render (view : "/leaveTracker/tokenExpired")
}
}
I shall be grateful for any kind of help on this.
grails spring-security gsp
New contributor
In my grails project (version 2.4.4), i am using grails-security-rest plugin. But for few APIs i need traditional security to work because we haven't yet completed got rid of GSP pages. I have been successful in handling all scenarios except one in which i want the user to redirect to a specific protected GSP from a link which i send him in an email. If the user is already logged in, the redirection happens smoothly but when i try to access it through an AJAX call (after getting the JWT token), it redirects back to the original page and in the logs, i find this issue - "Failed to create a session, as response has been committed. Unable to store SecurityContext."
class InternalPagesController {
def springSecurityService
def index() {
if (springSecurityService.isLoggedIn()) {
redirect(controller: params.cname, action: params.aname, params: params)
} else {
model: [params: params]
}
}
}
The associated gsp page contains the following -
<script>
function login(){
var email=document.getElementById("username").value;
var password= document.getElementById("password").value;
var formData = {"email": email, "password" : password};
console.log("hello"+email);
//var url = "${createLink(controller:'login', action:'authenticationJwt')}";
$.ajax({
url: "${grailsApplication.config.grails.ServerURL}/api/login",
type: 'POST',
data: JSON.stringify(formData),
async: false,
contentType : 'application/json',
success: function(data) {
localStorage.setItem('access_token',data.access_token)
dashboard(data);
},
error: function(data) {
console.log("errordata :"+data)
}
});
}
function dashboard(data){
var url = "${createLink(controller:'controllerName', action:'actionName')}";
$.ajax({
url : url,
type : 'GET',
async: false,
contentType : 'application/json',
beforeSend : function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer "
+ data.access_token);
},
success : function(data) {
//window.location=url;
},
error : function(data) {
console.log("errordata :" + data)
}
});
}
</script>
In the userRequestResponse i am trying to render another view and that is where the issue is.
class LeaveTrackerController {
@Secured(["ROLE_USER"])
def userRequestResponse(){
render (view : "/leaveTracker/tokenExpired")
}
}
I shall be grateful for any kind of help on this.
grails spring-security gsp
grails spring-security gsp
New contributor
New contributor
edited yesterday
New contributor
asked yesterday
mknarang
12
12
New contributor
New contributor
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
mknarang is a new contributor. Be nice, and check out our Code of Conduct.
mknarang is a new contributor. Be nice, and check out our Code of Conduct.
mknarang is a new contributor. Be nice, and check out our Code of Conduct.
mknarang is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372377%2fto-load-a-new-url-through-ajax-failed-to-create-a-session-as-response-has-bee%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown