package com.app.security
class AuthUser {
String username
String password
}
package com.app.utils.gson
import com.app.security.AuthUser
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.JsonSerializationContext
import com.google.gson.JsonSerializer
import java.lang.reflect.Type
class AuthUserSerializer implements JsonSerializer {
public AuthUserSerializer() {
super();
}
JsonElement serialize(AuthUser value, Type type, JsonSerializationContext context) {
final JsonObject jsonObj = new JsonObject();
['id', 'username'].each {
jsonObj.add(it, context.serialize(value[it]))
}
return jsonObj;
}
}
...In BootStrap...
def gsonBuilder
def init = { servletContext ->
gsonBuilder.registerTypeAdapter(AuthUser.class, new AuthUserSerializer());
}
...In Controller...
def authUser = new AuthUser(username:"someuser", password:"NOT SUPPOSED TO SHOW").save()
// Works fine
render (authUser as GSON) // = {"id":2, "username":"someuser"}
// Serializer not leveraged
render ([profile:memberService.currentMember] as GSON) // = {"profile":{"id":2, "username":"someuser", "password":"NOT SUPPOSED TO SHOW"}}
package com.app.security
class AuthUser {
String username
String password
}
package com.app.utils.gson
import com.app.security.AuthUser
import com.google.gson.JsonElement
import com.google.gson.JsonObject
import com.google.gson.JsonSerializationContext
import com.google.gson.JsonSerializer
import java.lang.reflect.Type
class AuthUserSerializer implements JsonSerializer {
public AuthUserSerializer() {
super();
}
JsonElement serialize(AuthUser value, Type type, JsonSerializationContext context) {
final JsonObject jsonObj = new JsonObject();
}
}
...In BootStrap...
def gsonBuilder
def init = { servletContext ->
gsonBuilder.registerTypeAdapter(AuthUser.class, new AuthUserSerializer());
}
...In Controller...
def authUser = new AuthUser(username:"someuser", password:"NOT SUPPOSED TO SHOW").save()
// Works fine
render (authUser as GSON) // = {"id":2, "username":"someuser"}
// Serializer not leveraged
render ([profile:memberService.currentMember] as GSON) // = {"profile":{"id":2, "username":"someuser", "password":"NOT SUPPOSED TO SHOW"}}