Comments (7)
Not tried with Robolectric (will add to my todo), which version of shared prefs? 0.1.0 or the older 0.4.0?
from secure-preferences.
0.0.4, I can try to see if with the version 0.1.0 the problem is not reproducible...
from secure-preferences.
Are you sure you're tests are being correctly cleared down afterwards? I found with the unit tests I wrote in the lib, i had to manually delete the created pref xml files between tests otherwise it would reuse.
from secure-preferences.
We saw the same issue. We worked around it by manually setting the private static SharedPreferences field to null before each test. So, the root issue is because the SecurePreferences class uses the static field, so suppling a different filename will get ignored if SecurePreferences was instantiated with a different file name in a test that ran before this one. We suspect that the sFile variable being static may be a mistake due the comment above it: //default for testing
Here's our subclass that allows us to reset the static field before instantiating SecurePreferences again:
public class TestSafeSecurePreferences extends SecurePreferences {
public TestSafeSecurePreferences(Context context) {
super(context);
}
public TestSafeSecurePreferences(Context context, String password, String sharedPrefFilename) {
super(context, password, sharedPrefFilename);
}
public static void clearStaticState() {
try {
Field staticField = SecurePreferences.class.getDeclaredField("sFile");
staticField.setAccessible(true);
staticField.set(null, null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
from secure-preferences.
Thanks for this see #22, a fix will be in version 0.1.2
from secure-preferences.
Cool!. Do you have a target release date for version 0.1.2?
from secure-preferences.
@pivotal-csaa-dev 0.1.2 has been pushed to maven central, awaiting replication.
from secure-preferences.
Related Issues (20)
- Fix getAll method to return the correct value for StringSet. HOT 2
- AndroidQ will no longer support android.preference. HOT 1
- Android 10 - android.preference deprecated HOT 1
- Security alert on our production app on google play console
- Android Canary 3.6 not building HOT 3
- Value can't be saved when put value after clear() and kill app in background. HOT 1
- DeterministicAeadFactory.java line 13
- Flutter HOT 1
- How to use sharedPreference in flutter to stay user loggedin in flutter using a setBool and GetBool HOT 2
- [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
- java.security.KeyStoreException: the master key android-keystore://_androidx_security_master_key_ exists but is unusable
- Create tag 0.1.7 HOT 1
- SecurePreferences.getString() throws java.lang.IllegalStateException HOT 1
- Crashing in API 28 (Android Pie) s== null (DO NOT USE THIS LIBRARY, it is completely broken) HOT 22
- Does this library needs to update the TragetSDKversion to 26? HOT 1
- After upgrade Android OS Version 9 (pie) the values are not stored and retrieved. HOT 5
- all sharedPrefrences remove after app crash's
- Security Scan failed
- securePref.getAll() return map where only values decrypted and keys encrypted HOT 1
- After updating to Android Q, i am not able to retrieve the data from the Secure preferences? HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from secure-preferences.