Fix Axios CSRF token update (#17404)

Fix Axios CSRF token update
This commit is contained in:
John Molakvoæ 2019-10-05 23:37:10 +02:00 committed by GitHub
commit 5c21d11207
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
55 changed files with 1441 additions and 2155 deletions

View file

@ -30,13 +30,11 @@ steps:
- name: build
image: nextcloudci/node:node-4
commands:
- cd /drone/src
- npm ci
- npm run build
- name: changes
image: nextcloudci/node:node-4
commands:
- cd /drone/src
- git status
- bash -c "[[ ! \"`git status --porcelain `\" ]] || ( echo 'Uncommited changes in webpack build' && exit 1 )"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -25,7 +25,7 @@
<script>
import ItemPreview from './components/ItemPreview'
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
export default {
name: 'Accessibility',

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -21,4 +21,4 @@
*
*/
n.default.prototype.t=t,r.Tooltip.options.defaultHtml=!1,n.default.component("PopoverMenu",r.PopoverMenu),n.default.directive("ClickOutside",s.a),n.default.directive("Tooltip",r.Tooltip),n.default.use(l.a)}}]);
//# sourceMappingURL=files_sharing.4.js.map?v=4e4a795c94e467758967
//# sourceMappingURL=files_sharing.4.js.map?v=a741e282fee1abd436e6

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -73,7 +73,7 @@
</template>
<script>
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
import OAuthItem from './components/OAuthItem'
import { generateUrl } from '@nextcloud/router'

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -66,7 +66,7 @@
</template>
<script>
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
import { Multiselect } from 'nextcloud-vue'
import _ from 'lodash'

View file

@ -35,7 +35,7 @@
</template>
<script>
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
import confirmPassword from 'nextcloud-password-confirmation'
import AuthTokenList from './AuthTokenList'

View file

@ -20,7 +20,7 @@
*
*/
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
import confirmPassword from 'nextcloud-password-confirmation'
const sanitize = function(url) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
import Axios from 'nextcloud-axios'
import Axios from '@nextcloud/axios'
export function generateCodes() {
const url = OC.generateUrl('/apps/twofactor_backupcodes/settings/create')

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -20,7 +20,7 @@
*
*/
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
import { generateRemoteUrl } from 'nextcloud-router'
const xmlToJson = (xml) => {

View file

@ -35,7 +35,7 @@
<script>
import { Multiselect } from 'nextcloud-vue/dist/Components/Multiselect'
import valueMixin from '../../mixins/valueMixin'
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
export default {
name: 'RequestUserGroup',
components: {

View file

@ -22,7 +22,7 @@
import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
import { getApiUrl } from './helpers/api'
import confirmPassword from 'nextcloud-password-confirmation'

59
core/js/dist/login.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

125
core/js/dist/main.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -19,6 +19,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import { subscribe } from '@nextcloud/event-bus'
import { addScript, addStyle } from './legacy-loader'
import {
ajaxConnectionLostHandler,
@ -67,8 +69,7 @@ import {
getProtocol
} from './host'
import {
getToken as getRequestToken,
subscribe as subscribeToRequestTokenChange
getToken as getRequestToken
} from './requesttoken'
import {
hideMenus,
@ -258,4 +259,9 @@ export default {
}
// Keep the request token prop in sync
subscribeToRequestTokenChange(token => { OC.requestToken = token })
subscribe('csrf-token-update', e => {
OC.requestToken = e.token
// Logging might help debug (Sentry) issues
console.info('OC.requestToken changed', e.token)
})

View file

@ -19,24 +19,22 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import { emit } from '@nextcloud/event-bus'
let token = document.getElementsByTagName('head')[0].getAttribute('data-requesttoken')
const observers = []
/**
* @returns {string}
*/
export const getToken = () => token
/**
* @param {Function} observer observer
* @returns {number}
*/
export const subscribe = observer => observers.push(observer)
/**
* @param {String} newToken new token
*/
export const setToken = newToken => {
token = newToken
observers.forEach(o => o(token))
emit('csrf-token-update', {
token
})
}

View file

@ -73,7 +73,7 @@
</template>
<script>
import axios from 'nextcloud-axios'
import axios from '@nextcloud/axios'
import { generateUrl } from '../../OC/routing'

View file

@ -67,7 +67,7 @@
</template>
<script>
import Axios from 'nextcloud-axios'
import Axios from '@nextcloud/axios'
export default {
name: 'UpdatePassword',

View file

@ -19,7 +19,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import Axios from 'nextcloud-axios'
import Axios from '@nextcloud/axios'
import OC from './OC/index'

2942
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -25,6 +25,8 @@
"dependencies": {
"@babel/polyfill": "^7.6.0",
"@chenfengyuan/vue-qrcode": "^1.0.1",
"@nextcloud/axios": "^0.4.1",
"@nextcloud/event-bus": "^0.2.0",
"@nextcloud/router": "^0.1.0",
"autosize": "^4.0.2",
"backbone": "^1.4.0",
@ -45,7 +47,6 @@
"marked": "^0.7.0",
"moment": "^2.24.0",
"moment-timezone": "^0.5.26",
"nextcloud-axios": "^0.2.1",
"nextcloud-initial-state": "0.0.3",
"nextcloud-password-confirmation": "^0.4.2",
"nextcloud-router": "0.0.9",