2012-11-01 20 views
5

Tôi đang sử dụng securesocial nó hoạt động tốt nhưng bây giờ mỗi khi tôi thay đổi một số mã scala tôi phải đăng nhập lại. Có khả năng giả mạo người dùng trong phiên khi ở chế độ phát triển, vì vậy tôi không phải đăng nhập thường xuyên như vậy?securesocial fake log in khi phát triển

Cảm ơn,

Joris Wijlens

+0

Lạ ... Bạn đang xóa cookie của mình ở đâu đó (trong 'Global.onStop()' hoặc ở một nơi khác)? –

+0

Không phải là tôi biết. Vì vậy, đây không phải là hành vi mặc định? –

+0

Sự cố đã biến mất sau khi chuyển sang triển khai cơ sở dữ liệu cho userservice –

Trả lời

-2

Điều đó xảy ra bởi vì trong DEV chế độ chơi khởi động lại ứng dụng khi bạn thay đổi mã của bạn. Vì vậy, dữ liệu trong dịch vụ người dùng mẫu bị mất.

12

SecureSocial theo mặc định sử dụng bộ nhớ đệm phát mặc định để lưu trữ trình xác thực (khớp với cookie cho người dùng đã đăng nhập). Bộ nhớ đệm phát mặc định là EHCache và được cấu hình bằng ehcache.xml mà bạn có thể tìm thấy trong các lọ. Cấu hình mặc định nằm trong bộ nhớ có nghĩa là khi ứng dụng khởi động lại, nó sẽ mất tất cả các giá trị. May mắn thay, nó khá dễ dàng để ghi đè lên cấu hình EHCache để ghi vào đĩa.

Sao chép tệp ehcache.xml trong các lọ vào thư mục cấu hình của bạn. Thêm <diskStore path="java.io.tmpdir"/> và thay đổi diskPersistent để true

Vì vậy, tôi trông như thế này:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd" updateCheck="false"> 
<diskStore path="java.io.tmpdir"/> 
<defaultCache 
     maxElementsInMemory="10000" 
     eternal="false" 
     timeToIdleSeconds="120" 
     timeToLiveSeconds="120" 
     overflowToDisk="false" 
     maxElementsOnDisk="10000000" 
     diskPersistent="true" 
     diskExpiryThreadIntervalSeconds="120" 
     memoryStoreEvictionPolicy="LRU" 
     /> 
</ehcache> 

Nếu bạn quan tâm đến việc học làm thế nào để cấu hình còn lại của nó, có một số tài liệu trong file ehcache-failsafe.xml đó cũng là trong các lọ chơi.

+1

Thanx rất nhiều, giải pháp hữu ích rất hữu ích! – kabochkov

+1

Đối với Play 2.2, tôi tìm thấy tệp ehcache-default.xml trong play/framework/src/play-cache/src/main/resources /. Tôi đổi tên nó thành ehcache.xml và đặt nó vào thư mục conf của dự án của tôi. Tôi chỉ đặt diskPersistent thành true và nó hoạt động. Bạn không chắc chắn nếu phần là cần thiết. – Raymond26

Các vấn đề liên quan