{"action":"created","issue":{"url":"https://api.github.com/repos/aerogear/aerogear-otp-java/issues/18","labels_url":"https://api.github.com/repos/aerogear/aerogear-otp-java/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/aerogear/aerogear-otp-java/issues/18/comments","events_url":"https://api.github.com/repos/aerogear/aerogear-otp-java/issues/18/events","html_url":"https://github.com/aerogear/aerogear-otp-java/pull/18","id":106970643,"number":18,"title":"Make the interval skew configurable","user":{"login":"thomasliasn","id":200910,"avatar_url":"https://avatars.githubusercontent.com/u/200910?v=3","gravatar_id":"","url":"https://api.github.com/users/thomasliasn","html_url":"https://github.com/thomasliasn","followers_url":"https://api.github.com/users/thomasliasn/followers","following_url":"https://api.github.com/users/thomasliasn/following{/other_user}","gists_url":"https://api.github.com/users/thomasliasn/gists{/gist_id}","starred_url":"https://api.github.com/users/thomasliasn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomasliasn/subscriptions","organizations_url":"https://api.github.com/users/thomasliasn/orgs","repos_url":"https://api.github.com/users/thomasliasn/repos","events_url":"https://api.github.com/users/thomasliasn/events{/privacy}","received_events_url":"https://api.github.com/users/thomasliasn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-09-17T12:14:38Z","updated_at":"2015-10-08T14:50:17Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/aerogear/aerogear-otp-java/pulls/18","html_url":"https://github.com/aerogear/aerogear-otp-java/pull/18","diff_url":"https://github.com/aerogear/aerogear-otp-java/pull/18.diff","patch_url":"https://github.com/aerogear/aerogear-otp-java/pull/18.patch"},"body":"Previously the verify method would only check the current and the previous interval, which causes problems when the user has positive clock skew.\r\n\r\nExample:\r\n- Server time is 10:29:00.\r\n- User time is 10:31:00.\r\n- Server will check intervals 09:59:30-10:00:00,10:00:00-10:30:00, and reject the code with only a couple of seconds skew.\r\n\r\nThis commit makes the default to check both the previous, the current, and the next interval, and also lets the user change this behavior if desired."},"comment":{"url":"https://api.github.com/repos/aerogear/aerogear-otp-java/issues/comments/146569215","html_url":"https://github.com/aerogear/aerogear-otp-java/pull/18#issuecomment-146569215","issue_url":"https://api.github.com/repos/aerogear/aerogear-otp-java/issues/18","id":146569215,"user":{"login":"abstractj","id":21758,"avatar_url":"https://avatars.githubusercontent.com/u/21758?v=3","gravatar_id":"","url":"https://api.github.com/users/abstractj","html_url":"https://github.com/abstractj","followers_url":"https://api.github.com/users/abstractj/followers","following_url":"https://api.github.com/users/abstractj/following{/other_user}","gists_url":"https://api.github.com/users/abstractj/gists{/gist_id}","starred_url":"https://api.github.com/users/abstractj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abstractj/subscriptions","organizations_url":"https://api.github.com/users/abstractj/orgs","repos_url":"https://api.github.com/users/abstractj/repos","events_url":"https://api.github.com/users/abstractj/events{/privacy}","received_events_url":"https://api.github.com/users/abstractj/received_events","type":"User","site_admin":false},"created_at":"2015-10-08T14:50:17Z","updated_at":"2015-10-08T14:50:17Z","body":"@thomasliasn what you're mentioning can pretty much be achieved using a custom interval https://github.com/aerogear/aerogear-otp-java/blob/master/src/test/java/org/jboss/aerogear/security/otp/TotpTest.java#L88"}}