Найдя здесь другие ответы неприемлемыми (или просто не совсем подходящими для моего подхода), я отшатнулся, пока не нашел что-то, что мне больше нравится.Вот что я сделал:
public class Security extends Secure.Security {
/* Overrides the same method from Secure.Security.
* I only needed to redirect back the home-page so I just
* hard-coded the redirect-url here; but you could also have
* directed your logout-link to #logout2(String url) where you do a
* flash#put() and then here do a flash#get() and redirect to
* to that url instead (see n002213f's answer for more detail;
* but I thought it bad-practice to do the other half of his
* answer -- directly modifying the #logout() method of the
* play#secure-module)
static void onDisconnected() {
redirect( "/" );
}
}
index.html:
(...) <a href="logout">Logout</a> (...)
Итак, что здесь происходит, так это то, что вызывается play # secure # logout () по умолчанию и в конце процесса выхода из системы запускается Secure # Security # onDisconnected - чтопереопределяется и перенаправляет на домашнюю страницу.Таким образом, собственная встроенная безопасность игры не будет обойдена, поэтому вы не рискуете нарушить свою безопасность, вы также не будете напрямую изменять код play # secure-module, что означает, что при обновлении вы не окажетесь вмаринуйте, и все же вы добиваетесь своего результата: не перенаправлены на страницу play # secure-login по умолчанию, а вместо этого сразу возвращаетесь на домашнюю страницу.
Если кто-то более опытный с Play!чем я вижу проблему с этим (или если моя критика других решений является необоснованной), я хотел бы услышать ответ!
В противном случае я думаю, что это самый элегантный и самый простой способ достижения цели.